Jump to content
Taki

"Hello World!" dans tous les langages

Recommended Posts

Bonjour,

Je vois qu'en DOS ( Batch ) le code donné est

@Echo Hello World

Or si le code serait cela nous ne verrons même pas le message car la fenêtre se fermerait tout de suite après le double clic.

Donc le code est celui-ci

@echo off

Echo Hello World

pause>NUL

@+

Share this post


Link to post
Share on other sites
En même temps un test rapide me donne :

time php test.php >-

real	0m0.259s
user	0m0.088s
sys	 0m0.128s

avec les doubles guillemets et

time php test.php >-

real	0m0.260s
user	0m0.088s
sys	 0m0.172s

avec les simple guillemets.

Le source de test.php :

<?
for ($i=0; $i<100000; $i++)
echo "Hello World";
?>

Donc en gros tu es en train de nous dire que tu va éventuellement gagner quelque chose de l'ordre du centième ou du millième de seconde sur cent mille print. Sacré optimisation.

Et encore dans le cas présent, c'est le contraire, ce sont les double guillemets qui sont plus rapides.

Test non valide !

Si le moteur de php est bien foutu, il parse une seule fois la chaîne puis la bufferise, donc absolument aucune différence entre "" et ' '.

Pour faire un vrai test, il faudrait générer une chaîne aléatoire et l'afficher, le tout dans la boucle de 100.000. :youhou:

Share this post


Link to post
Share on other sites

<?
for ($i=0; $i<100000; $i++)
{
 $string="";
 for ($j=0; $j<20; $j++)
$string.=chr (rand(0, 255));
 print "== $string ==";
}
?>

 time php test.php >/dev/null

real	0m7.226s
user	0m3.576s
sys	 0m0.840s

<?
for ($i=0; $i<100000; $i++)
{
 $string='';
 for ($j=0; $j<20; $j++)
$string.=chr (rand(0, 255));
 print '== '.$string.' ==';
}
?>

 time php test.php >/dev/null

real	0m7.541s
user	0m3.824s
sys	 0m0.852s

Convaincu ?

Share this post


Link to post
Share on other sites

[DETERRAGE TOPIC]

"Hello world !" en Ook :

Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook? Ook! Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.

Et le "Hello world !" en spoon :

1 1 1 1 1 1 1 1 1 1 00100 010 1 1 1 1 1 1 1 010 1 1 1 1 1 1 1 1 1 1 010 1 1 1 010 1 011 011 011 011 000 0011 010 1 1 001010 010 1 001010 1 1 1 1 1 1 1 001010 001010 1 1 1 001010 010 1 1 001010 011 011 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 010 001010 1 1 1 001010 000 000 000 000 000 000 001010 000 000 000 000 000 000 000 000 001010 010 1 001010 010 001010

En brainfuck :

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Ahah j' en connai des choses avec http://fr.wikipedia.org/wiki/Ook

[/DETERRAGE TOPIC]

Share this post


Link to post
Share on other sites

En scala:

 object HelloWorld {
def main(args: Array[String]) {
  println("Hello, world!")
}
 }

Share this post


Link to post
Share on other sites

En ADA

with Ada.Text_IO;

procedure Hello is

begin

Ada.Text_IO.Put_Line("Hello, world!");

end Hello;

En LISP

(print "Hello World")

ou

(write-line "Hello World!")

Maple :

>> print("Hello, World!");

Prolog

printHelloWorld :-

write('Hello world !'),

nl.printHelloWorld :-

write('Hello world !'),

nl.

Scheme

(define hello-world

(lambda ()

(begin

(write 'Hello-World)

(newline)

(hello-world))))

ASP.NET

Response.Write("Hello, World!")

Matlab

disp('Hello world')

VRML

Shape

{

geometry Text

{string "Hello World!"}

}

Et en tant que nouveau membre je vous propose cette blague : http://www.gnu.org/fun/jokes/helloworld.html

Share this post


Link to post
Share on other sites

en assembleur 6502 (version Commodore 64, assembleur Ophis) :

.word $0801
.org  $0801

 .word next, 10
 .byte $9e, " 2064", 0
next:
 .word 0

.advance 2064
 jsr $e544
 ldx #$00
ch:
 cpx #$0b
 beq end
 lda string, x
 sta $0400, x
 inx
 jmp ch

end:
 rts

string:
 .byte $08, $05, $0c, $0c, $0f, $20, $17, $0f, $12, $0c, $04

A assembler avec :

ophis -6510 monfichier.s monprogramme.prg

:transpi:

Share this post


Link to post
Share on other sites
Quand un anglo-saxon débute en programmation ou touche pour la première fois à un langage particulier, il fait un petit programme qui dit bonjour à tout le monde. L'expression " Hello, world ! " désigne ainsi quelque chose d'élémentaire.

Et beh en france, on est un paquet à dire : toto ... la classe :cap:

Alors, et pour soutenir theocrite dans sa défense des " et parceque je ne suis frustrée que tous les langages que je connais aient été passés, je lance un brave :

<?php echo "toto"; ?>

Share this post


Link to post
Share on other sites

En F#:

printfn "Hello world!"

En IL (le byte code de .NET):

.method static void main()
{
   .entrypoint
   .maxstack 1

   ldstr "Hello world!"
   call void [mscorlib]System.Console::WriteLine(string)

   ret
}

Share this post


Link to post
Share on other sites

Intéressant tout ça !

En REXX :

Say "Hello, World!"

En SQL : :byebye:

SELECT 'Hello, World!';

Share this post


Link to post
Share on other sites

VHDL

-- Hello world en VHDL

entity hello_world is

end hello_world;

architecture affiche of hello_world is

begin

assert false report "Hello world en VHDL !";

end affiche;

Share this post


Link to post
Share on other sites
En SQL : :chinois:

SELECT 'Hello, World!';

Il me semble que dans les spécifications standard du sql la clause from n'est pas facultative.

C'est d'ailleurs il me semble l'une des raisons de la table dual sous oracle.

(du coup ta ligne ne fonctionne pas sous sqlplus)

Enfin après il y a peut etre certains sgdb qui l'autorise...

Share this post


Link to post
Share on other sites
En SQL : :ouioui:

SELECT 'Hello, World!';

Il me semble que dans les spécifications standard du sql la clause from n'est pas facultative.

C'est d'ailleurs il me semble l'une des raisons de la table dual sous oracle.

(du coup ta ligne ne fonctionne pas sous sqlplus)

Enfin après il y a peut etre certains sgdb qui l'autorise...

au moins en sqlite, mysql et pgsql

Share this post


Link to post
Share on other sites
Il me semble que dans les spécifications standard du sql la clause from n'est pas facultative.

C'est d'ailleurs il me semble l'une des raisons de la table dual sous oracle.

(du coup ta ligne ne fonctionne pas sous sqlplus)

Enfin après il y a peut etre certains sgdb qui l'autorise...

J'ai l'impression qu'Oracle est l'exception qui confirme la règle.

Sur les autres sgbd, la clause from n'est obligatoire que si l'on accède aux tables. si l'on utilise uniquement des constantes, on n'en a pas besoin.

Un spécialiste peut confirmer ?

Share this post


Link to post
Share on other sites
Il me semble que dans les spécifications standard du sql la clause from n'est pas facultative.

C'est d'ailleurs il me semble l'une des raisons de la table dual sous oracle.

(du coup ta ligne ne fonctionne pas sous sqlplus)

Enfin après il y a peut etre certains sgdb qui l'autorise...

J'ai l'impression qu'Oracle est l'exception qui confirme la règle.

Sur les autres sgbd, la clause from n'est obligatoire que si l'on accède aux tables. si l'on utilise uniquement des constantes, on n'en a pas besoin.

Un spécialiste peut confirmer ?

J'ai vérifié la grammaire du SQL définie dans la norme ISO/CEI 9075, la clause from n'est pas optionnelle :

<query specification>    ::=   SELECT [ <set quantifier> ] <select list> <table expression> 

<table expression>    ::= 
        <from clause>
        [ <where clause> ]
        [ <group by clause> ]
        [ <having clause> ]
        [ <window clause> ] 

<from clause>    ::=   FROM <table reference list> 

Par contre, j'ai été faire un tour sur les docs de quelques SGBD, et effictement la plupart rendent la clause where optionnelle, même si parfois c'est assez flou (ce qui donne l'impression qu'ils veulent noyer le poisson avec la liberté prise par rapport a la norme iso ^^).

Enfin bon, c'est pas comme si c'etait la première fois qu'un éditeur prenait des liberté sur l'implémentation d'une norme, et puis quand ca simplifie la tache du developpeur on va pas cracher dessus :)

Share this post


Link to post
Share on other sites

En assembleur, c'est dépendant de la machine et des libs mais ce n'est pas très représentatif de l'assembleur où on est censé tout faire soi même.

Stocker les data des caractères

Avoir une fonction qui affiche un caractère aux coordonnées X,Y d'un écran de taille X,Y

Avoir une fonction qui affiche une chaine

Bref, en asm, c'est beauuuuuuuuuuuucoup plus long :transpi:

(et quand c'est long, c'est bon)

Mais sinon pour faire court, on peut supposer que la sortie se fait sur une sortie série, là, y a juste un port et un OUT à faire!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...