Hello world

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir Hello (homonymie).

En informatique, pour la démonstration rapide d'un langage de programmation (par exemple à but pédagogique) ou le test d'un compilateur, il est de tradition d'écrire un petit programme, aussi simple que possible, dont le seul but soit l'affichage à l'écran des mots hello world (bonjour le monde).

Certains sont étonnamment complexes, particulièrement dans un contexte d'interface graphique. D'autres sont très simples, particulièrement ceux qui utilisent un interpréteur de ligne de commande pour afficher le résultat. Dans plusieurs systèmes embarqués, le texte peut être envoyé sur une ou deux lignes d'un afficheur LCD (ou dans d'autres systèmes, une simple DEL peut se substituer à un hello world).

Alors que les petits programmes de test existaient depuis le début de la programmation, la tradition d'utiliser hello world comme message de test a été influencée par le livre The C Programming Language de Brian Kernighan et Dennis Ritchie. Le premier exemple de ce livre affiche hello, world (sans majuscule ni point final, mais avec une virgule et un retour à la ligne final). Le premier hello world dont Ritchie et Kernighan se souviennent provient d'un manuel d'apprentissage du langage B écrit par Kernighan [1].

Aujourd'hui on affiche plus souvent Hello world! comme une phrase, avec majuscule et point d'exclamation final.

Sommaire

[modifier] Le programme « Hello world! » suivant les langages

[modifier] ABC

WRITE "Hello world!"

[modifier] ActionScript

trace("Hello world!");
this.createTextField("champ",this.getNextHighestDepth(),0,20,200,20);
 champ.text = "Hello World !";

[modifier] Ada

with Ada.Text_IO;
 use Ada.Text_IO;
 
 procedure Bonjour is
 begin -- Bonjour
   Put("Hello world!");
 end Bonjour;

[modifier] Alma

Hello world!

[modifier] AmigaE

PROC main()
  WriteF('Hello world!')
ENDPROC

[modifier] APL

'Hello world!'

(L'une des bases d'APL est que toute expression qui, après exécution, n'est pas affectée à une variable voit son contenu affiché au terminal)

[modifier] AppleScript

display dialog "Hello world!"

[modifier] ASP et ASP.NET

<%
 Response.Write("Hello World")
 %>

[modifier] AspectJ

Main.java:
 
    public class Main {
        public static void main(String[] args){
        }
    }
 
HelloWorld.aj:
 
    public aspect HelloWorld {
        pointcut mainCall() : call(public static void *.main(String[] args));
 
        before() : mainCall() {
            System.out.println( "Hello world!" );
        }
    }

[modifier] Assembleur de Bytecode Java

Ce code fonctionne avec les assembleurs Jasmin et Oolong.

Les commentaires sont situés après un ';'

.class public Hello
    .super java/lang/Object
 
    ; spécification du constructeur par défaut
    .method public <init>();
        ; pousse la référence à l'objet courant sur la pile
        aload_0 
        ; appel statiquement lié aux constructeurs de la classe de base
        invokespecial java/lang/Object/<init>()V
        return
    .end method
 
    .method public static main([java/lang/String;)V
       .limit stack 2
       ; pousse la réf. à l'objet statique out de la classe System sur la pile
       getstatic java/lang/System/out Ljava/io/PrintStream
       ; pousse la chaîne de caractère sur la pile
       ldc "Hello world!" 
       ; appel polymorphe
       invokevirtual java/io/PrintStream/println(Ljava.lang.String;)V
       return
    .end method

[modifier] Assembleur x86 sous DOS

cseg segment
 assume cs:cseg, ds:cseg
 org 100h    
 main proc     
 jmp debut
 mess db 'Hello world!$'
 debut:
 mov dx, offset mess
 mov ah, 9
 int 21h
 ret
 main endp     
 cseg ends
 end main

[modifier] Assembleur x86, écrit pour l'assembleur TASM sous DOS

.model small
 &nbsp;
 .stack 100h
 &nbsp;
 .data
    bonjour  db  "Hello world!$"
 &nbsp;
 .code
    main  proc
        mov  AX,@data
        mov  DS, AX
        mov  DX, offset bonjour
        mov  AX,0900h
        int  21h
        mov  AX,4C00h
        int  21h
        main endp
    end main

[modifier] Assembleur x86, sous Linux, écrit pour l'assembleur NASM

section .data
        helloMsg:     db 'Hello world!',10 
        helloSize:    equ $-helloMsg
 section .text
        global _start
 _start:
        mov eax,4             ; Appel système "write" (sys_write)
        mov ebx,1             ; File descriptor, 1 pour STDOUT (sortie standard)
        mov ecx, helloMsg     ; Adresse de la chaîne a afficher
        mov edx, helloSize    ; Taille de la chaîne
        int 80h               ; Execution de l'appel système
                              ; Sortie du programme
        mov eax,1             ; Appel système "exit"
        mov ebx,0             ; Code de retour
        int 80h

[modifier] Awk

BEGIN { print "Hello world!" }

[modifier] BASIC

10 PRINT "Hello world!"
 20 END

Noter que les étiquettes (numéros devant les lignes) ne sont plus nécessaires dans les versions modernes (BBC BASIC for Windows, Quick Basic, Turbo Basic, QBasic, Visual Basic...). Elles ne sont plus utilisées que pour les instructions de contrôle de flux (les boucles et les sauts, notamment le GOTO et le GOSUB).

[modifier] Bash

echo 'Hello world'

[modifier] BCPL

GET "LIBHDR"
 
LET START () BE
$(
   WRITES ("Hello world!*N")
$)

[modifier] Befunge

<q_,#! #:<"Hello world!"a

[modifier] Brainfuck

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

[modifier] C

#include <stdio.h>
 
int main(int argc, char* argv[])
  {
    printf("Hello world!\n");
    return 0;
  }
int main(int argc, char* argv[])
 {
   puts("Hello world!");
   return 0;
 }

En utilisant uniquement des fonctions POSIX :

#include <unistd.h>
 
int main(int argc, char* argv[])
  {
    write(1, "Hello world!\n", 13);
    return 0;
  }

[modifier] C (uniquement sous windows, API Win32)

#include <windows.h>
 
int WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
{
    MessageBox( NULL, "Hello world!\n", "", MB_OK );
    return 0;
}

[modifier] C (uniquement sur PSP)

#include <pspkernel.h>
#include <pspdebug.h>
 
PSP_MODULE_INFO("Hello World", 0, 1, 1);
#define printf pspDebugScreenPrintf 
 
/* Exit callback */
int exit_callback(int arg1, int arg2, void *common)
{
    sceKernelExitGame();
    return 0;
}
 
/* Callback thread */
int CallbackThread(SceSize args, void *argp)
{
    int cbid;
 
    cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
    sceKernelRegisterExitCallback(cbid);
 
    sceKernelSleepThreadCB(); 
 
    return 0;
}
 
/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void)
{
    int thid = 0;
 
    thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
    if(thid >= 0) {
        sceKernelStartThread(thid, 0, 0);
    }
 
    return thid;
} 
 
int main()
{       
    pspDebugScreenInit();
    SetupCallbacks();
    printf("Hello, World");
    sceKernelSleepThread();
 
    return 0;
}

[modifier] C# (en Console)

using System;
 
 public class HelloWorld {
    public static void Main () {
       Console.WriteLine("Hello world!");
    }
 }

[modifier] C# (Application Windows)

using System.Windows.Forms;
 
 public class HelloWorld
 {
    public static void Main() {
       MessageBox.Show("Hello world!");
    }
 }

[modifier] C++

#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}

[modifier] Caml

print_string("Hello world!");;

Ou

(* Fichier hello.ml*)
 let hello () =
   print_string("Hello world!");
   print_newline();;
 let main () =
   hello();
   exit(0);;
 main();;

[modifier] Casio (calculatrices graphiques de la gamme «Graph xx»)

"Hello world!"

ou :

Locate 1,1,"Hello world!"

ou encore :

ViewWindow 1,127,0,1,63,0
Text 1,1,"Hello world!"

[modifier] CIL

.method public static void Main() cil managed
{
    .entrypoint
    .maxstack 8
    ldstr "Hello world!."
    call void [mscorlib]System.Console::WriteLine(string)
    ret
}

[modifier] Clean

module hello
 
Start :: String
Start = "Hello world!"

[modifier] CLIST

PROC 0
WRITE Hello world!

[modifier] COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
 
ENVIRONMENT DIVISION.
 
DATA DIVISION.
 
PROCEDURE DIVISION.
DISPLAY "Hello world!".
STOP RUN.

[modifier] Common Lisp

(princ "Hello world!")

[modifier] D

import std.stdio;
 
int main ()
{
    writefln("Hello world!");
    return 0;
}

[modifier] Delphi

unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs;
 
 type
   TForm1 = class(TForm)
     procedure FormActivate(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
  end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.dfm}
 
 procedure TForm1.FormActivate(Sender: TObject);
 begin
   ShowMessage('Hello world');
 end;
 
 end.

[modifier] Dialog/Xdialog

dialog --title 'Hello world!' --ok-label 'OK' --msgbox 'Hello world!' 0 0
Xdialog --title 'Hello world!' --ok-label 'OK' --msgbox 'Hello world!' 0 0
kdialog --title 'Hello world!'  --msgbox 'Hello world!' 0 0

[modifier] DCL batch

$ write sys$output "Hello world!"

[modifier] ed et ex (Ed extendu)

a
Hello world!
.
p

ou comme ceci:

echo -e 'a\nHello world!\n.\np'|ed
echo -e 'a\nHello world!\n.\np'|ex

[modifier] Eiffel

class HELLO_WORLD
 
 creation
     make
 
 feature
     make is
         do
             io.put_string("Hello world!%N")
         end -- make
 
 end -- class HELLO_WORLD

[modifier] Erlang

-module(hello).
-export([hello_world/0]).
 
hello_world() -> io:fwrite("Hello world!\n").

[modifier] EUPHORIA

puts(1, "Hello world!")

[modifier] Forte TOOL

begin TOOL HelloWorld;
 
  includes Framework;
  HAS PROPERTY IsLibrary = FALSE;
 
  forward  Hello;
 
  -- START CLASS DEFINITIONS
 
  class Hello inherits from Framework.Object
 
  has public method Init;
 
  has property
       shared=(allow=off, override=on);
       transactional=(allow=off, override=on);
       monitored=(allow=off, override=on);
       distributed=(allow=off, override=on);
 
  end class;
   -- END CLASS DEFINITIONS
 
   -- START METHOD DEFINITIONS
 
   ------------------------------------------------------------
   method Hello.Init
   begin
   super.Init();
 
   task.Part.LogMgr.PutLine('Hello world!');
   end method;
   -- END METHOD DEFINITIONS
   HAS PROPERTY
       CompatibilityLevel = 0;
       ProjectType = APPLICATION;
       Restricted = FALSE;
       MultiThreaded = TRUE;
       Internal = FALSE;
       LibraryName = 'hellowor';
       StartingMethod = (class = Hello, method = Init);
 
   end HelloWorld;

[modifier] Forth

." Hello world!" CR

[modifier] Fortran (ANSI 77)

PROGRAM BONJOUR
 WRITE (*,*) 'Hello world!'
 END

[modifier] Frink

println["Hello world!"]

[modifier] Gambas

   PUBLIC SUB Main()
 
     Print "Hello world!"
 
   END

[modifier] GML (Game Maker Language)

draw_text(x, y,"Hello world!");

[modifier] Gnuplot

#! /usr/bin/gnuplot
 print "hello world"

[modifier] GOTO++

   GOTOPRINTDUTEXTE() ; «Hello world!»

[modifier] Groovy

print "hello world"

[modifier] Haskell

   module HelloWorld (main) where
 
   main = putStrLn "Hello world!"

[modifier] Heron

 program HelloWorld;
 functions {
   _main() {
     String("Hello world!") |> GetStdOut();
   }
 }
 end

[modifier] HP-41 et HP-42S

(calculatrice Hewlett-Packard alphanumérique)

 
   01 LBLTHELLO
   02 THELLO, WORLD
   03 PROMPT 

Sortie de la HP-41

[modifier] HP-40 G

(calculatrice Hewlett-Packard)

DISP 1;"HELLO WORLD !":
FREEZE:

[modifier] HQ9+

H

[modifier] HTML

<html>
   <body>
      Hello world!
   </body>
</html>

[modifier] XHTML 1.0 Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
      <head>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
        <title>Dire «Hello world!» en XHTML 1.0 Strict</title>
      </head>
 
      <body>
        <p>Hello world!</p>
      </body>
    </html>

[modifier] ICON

   procedure main()
     write("Hello World !")
   end

[modifier] Iptscrae

   ON ENTER {
       "Hello " "world!" & SAY
   }

[modifier] Io

"Hello world!" print

ou

write("Hello world!\n")

[modifier] Java

Note: Le nom du fichier doit absolument être HelloWorld.java (même nom que la classe)

public class HelloWorld {
    public static void main(String[] args) {
        System.out.print("Hello world!"); 
    }
}

ou

public class HelloWorld {
    public static void main(String[] args) {
        javax.swing.JOptionPane.showMessageDialog(null, "Hello world!");
    }
}

[modifier] JavaScript / HTML DOM

En javascript :

document.write("Hello world!");

Cela peut être inclus dans du HTML de cette manière :

<script type="text/javascript" language="javascript">
        document.write("Hello world!");
 </script>

Ou par l'appel à une fonction :

<script type="text/javascript" language="javascript">
alert("Hello world!");
 </script>

[modifier] Kogut

WriteLine "Hello world!"

[modifier] LaTeX

\documentclass{article}
    \begin{document}
    Hello world!
    \end{document}

[modifier] Linotte

Livre : HelloWorld
 Paragraphe : Affichage
 Les actions :
   "Hello, World !" !

[modifier] Lisaac

section HEADER
  + name        := HELLO_WORLD;
  - category    := MACRO;
section INHERIT
  - parent_object:OBJECT := OBJECT;
section PUBLIC
  - make <-
  ( 
    "Hello world !\n".print;
  );

[modifier] Lisp

(write-line "Hello World!")

[modifier] Logo

   print [Hello world!]

ou

   pr [Hello world!]

en mswlogo seulement

   messagebox [Hi] [Hello world!]

[modifier] LOLCODE

   HAI
   CAN HAS STDIO?
   VISIBLE "HAI WORLD!"
   KTHXBYE

[modifier] Lua

print "Hello world!"

[modifier] Malbolge

 (=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
 hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<

[modifier] MATLAB

disp('Hello world');

ou

fprintf('Hello world\n');

[modifier] mIRC Script

echo -a Hello World!

[modifier] M (MUMPS)

   W "Hello world!"

[modifier] Modula-2

   MODULE Hello;
 
   FROM Terminal2 IMPORT WriteLn; WriteString;
 
   BEGIN
      WriteString("Hello world!");
      WriteLn;
   END Hello;

[modifier] MS-DOS batch

(avec l'interpreteur standard command.com. Le symbole @ est optionnel et évite au système de répéter la commande avant de l'exécuter. Le symbole @ doit être enlevé avec les versions de MS-DOS antérieures au 5.0.)

   @echo Hello world!
    pause

[modifier] MUF

   : main
     me @ "Hello world!" notify
   ;
   

[modifier] Objective C

  #import <Foundation/Foundation.h>

   int main (int argc, const char * argv[]) {
      NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]] init];

      NSLog(@"Hello world!");
      [pool release];
      return 0;
  }

[modifier] Objective Caml

Cf. #Caml. Cet exemple vaut aussi pour le F#.

let _ = print_endline "Hello world"

[modifier] Octave

#!/usr/bin/octave
disp("hello world")

[modifier] Ook

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

[modifier] OpenLaszlo

   
        <canvas>
            <text>Hello world</text>
        </canvas>
    

[modifier] OPL

   PROC hello:
     PRINT "Hello world!"
   ENDP

[modifier] OPS5

   (object-class request
            ^action)
 
   (startup
      (strategy MEA)
      (make request ^action hello)
   )
 
 
   (rule hello
      (request ^action hello)
      -->
        (write |Hello world!| (crlf))
   )

[modifier] Oz

{Browse 'Hello world !'}

[modifier] Pascal

program hello;
 begin
   WriteLn('Hello world!');
 end.

[modifier] PDF

%PDF-1.3
1 0 obj
  << /Type /Catalog
     /Outlines 2 0 R
     /Pages 3 0 R
  >>
endobj

2 0 obj
  << /Type /Outlines
     /Count 0
  >>
endobj

3 0 obj
  << /Type /Pages
     /Kids [4 0 R]
     /Count 1
  >>
endobj

4 0 obj
  << /Type /Page
     /Parent 3 0 R
     /MediaBox [0 0 612 792]
     /Contents 5 0 R
     /Resources << /ProcSet 6 0 R
                   /Font << /F1 7 0 R >>
                >>
>>
endobj

5 0 obj
  << /Length 73 >>
stream
  BT
    /F1 24 Tf
    100 100 Td
    (Hello World) Tj
  ET
endstream
endobj

6 0 obj
  [/PDF /Text]
endobj

7 0 obj
  << /Type /Font
     /Subtype /Type1
     /Name /F1
     /BaseFont /Helvetica
     /Encoding /MacRomanEncoding
  >>
endobj

xref
0 8
0000000000 65535 f
0000000009 00000 n
0000000074 00000 n
0000000120 00000 n
0000000179 00000 n
0000000364 00000 n
0000000466 00000 n
0000000496 00000 n

trailer
  << /Size 8
     /Root 1 0 R
  >>
startxref
625
%%EOF

[modifier] Perl

#!/usr/bin/perl 
 print "Hello world!\n";

[modifier] Perl 6

say "Hello world";

[modifier] PHP

<?php
 echo "Hello world!";
 
 // On peut aussi utiliser les guillemets simples
  echo 'Hello World!';
?>

ou

<?php
 print ("Hello world!");
?>

ou (version printf() du c)

<?php
printf("%s %s","Hello","world!");
?>

et encore (en version raccourcie)

<?="Hello world!"?>

On peut carrément sous-entendre l'instruction et écrire :

Hello World!

[modifier] PlanFacile

#start{0}#message{Hello world !}

ou pour les amateurs d'IOCCC

#define{d}{r}#define{r}{H#2#1#H#define{r}{#1#1}}
#H{#h{#r{#r{#e}#define{H}{#l}}{e}}{#define{d}{# }!}
{#h{#l}{#o}{#w{w}}#e#define{h}{#3#define{o}{r}#1#2}
#w{d}{#d}#define{w}{#0}}#define{h}{#1#d#3#2}#define{e}
{l}}#start{0}#define{H}{#foot{#1#define{l}{o}}}

[modifier] PL/I

hello: procedure options(main);
       display ('Hello world!');
       /* Ou, variante : put skip list ('Hello world!'); */
       end hello;

[modifier] PL/SQL

   SET SERVEROUTPUT ON
   BEGIN
   DBMS_OUTPUT.PUT_LINE('Hello world!');
   END;

[modifier] PL/PGSQL

   CREATE FUNCTION hello_world() RETURNS VOID AS $$
   BEGIN
        RAISE NOTICE 'Hello World';
   END
   $$ LANGUAGE 'plpgsql' VOLATILE;

[modifier] POP-11

   'Hello world!' =>

[modifier] POV-Ray

 #include "colors.inc"
 camera {
   location <3, 1, -10>
   look_at <3,0,0>
 }
 light_source { <500,500,-1000> White }
 text {
   ttf "timrom.ttf" "Hello world!" 1, 0
   pigment { White }
 }

[modifier] PostScript

%!PS
100 /Helvetica findfont exch scalefont setfont
10 300 moveto
(Hello, world !) show
showpage

[modifier] PROC (langage de commande Pick)

001 PQ
002 C Affiche 'Hello, world !' à l'écran
003 OHello, world !
004 X
NB : PQ indique qu'il s'agit d'une PROC, C=Commentaire, O=Output, X=Exit (facultatif). Les numéros de lignes sont ceux affichés par l'éditeur de textes ED.

[modifier] Prolog

   :- write('Hello world!'), nl.

[modifier] Pseudo-code

output Hello world!

[modifier] PureBasic

OpenConsole()
    PrintN("Hello World!")

[modifier] Python

print "Hello world!"

[modifier] Rebol

print "Hello world!"

[modifier] REXX, NetRexx, et Object REXX

say "Hello world!"

ou:

say 'Hello world!'

[modifier] RPG

[modifier] Syntaxe libre

      /FREE

          DSPLY 'Hello, world!';

          *InLR = *On;

      /END-FREE 

[modifier] Syntaxe traditionnelle

Avec cette syntaxe, une constante doit être utilisée car seules les positions 12 à 25 peuvent être utilisées pour contenir le message.

     d TestMessage     c                   Const( 'Hello, world!' )

     c     TestMessage   DSPLY

     c                   EVAL      *InLR = *On

[modifier] RPL

(Sur les calculatrices Hewlett-Packard HP-28, HP-48 et HP-49.)

   <<
     CLLCD
     "Hello world!" 1 DISP
     0 WAIT
     DROP
   >>

[modifier] Ruby

puts "Hello world!"

[modifier] Ruby on Rails

render :text => "Hello, world!"

[modifier] Sather

   class HELLO_WORLD is
     main is 
      #OUT+"Hello world!\n"; 
     end; 
   end;

[modifier] Scala

   object HelloWorld with Application {
     Console.println("Hello world!");
   }

[modifier] Scilab

disp("Hello World");

[modifier] Scheme

(display "Hello world!")
    (newline)

[modifier] sed

(note: requiert au moins une ligne en entrée)

sed -ne '1s/.*/Hello world!/p'

ou

sed "i\
Hello World" << EOF    
EOF

[modifier] Seed7

$ include "seed7_05.s7i";

const proc: main is func
  begin
    writeln("Hello world!");
  end func;

[modifier] Self

   'Hello world!' print.

[modifier] SPL (Shakespeare Programming Language)


The Infamous Hello World Program.

Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.


                    Act I: Hamlet's insults and flattery.

                    Scene I: The insulting of Romeo.

[Enter Hamlet and Romeo]

Hamlet:
 You lying stupid fatherless big smelly half-witted coward!
 You are as stupid as the difference between a handsome rich brave
 hero and thyself! Speak your mind!

 You are as brave as the sum of your fat little stuffed misused dusty
 old rotten codpiece and a beautiful fair warm peaceful sunny summer's
 day. You are as healthy as the difference between the sum of the
 sweetest reddest rose and my father and yourself! Speak your mind!

 You are as cowardly as the sum of yourself and the difference
 between a big mighty proud kingdom and a horse. Speak your mind.

 Speak your mind!

[Exit Romeo]

                    Scene II: The praising of Juliet.

[Enter Juliet]

Hamlet:
 Thou art as sweet as the sum of the sum of Romeo and his horse and his
 black cat! Speak thy mind!

[Exit Juliet]

                    Scene III: The praising of Ophelia.

[Enter Ophelia]

Hamlet:
 Thou art as lovely as the product of a large rural town and my amazing
 bottomless embroidered purse. Speak thy mind!

 Thou art as loving as the product of the bluest clearest sweetest sky
 and the sum of a squirrel and a white horse. Thou art as beautiful as
 the difference between Juliet and thyself. Speak thy mind!

[Exeunt Ophelia and Hamlet]


                    Act II: Behind Hamlet's back.

                    Scene I: Romeo and Juliet's conversation.

[Enter Romeo and Juliet]

Romeo:
 Speak your mind. You are as worried as the sum of yourself and the
 difference between my small smooth hamster and my nose. Speak your
 mind!

Juliet:
 Speak YOUR mind! You are as bad as Hamlet! You are as small as the
 difference between the square of the difference between my little pony
 and your big hairy hound and the cube of your sorry little
 codpiece. Speak your mind!

[Exit Romeo]

                    Scene II: Juliet and Ophelia's conversation.

[Enter Ophelia]

Juliet:
 Thou art as good as the quotient between Romeo and the sum of a small
 furry animal and a leech. Speak your mind!

Ophelia:
 Thou art as disgusting as the quotient between Romeo and twice the
 difference between a mistletoe and an oozing infected blister! Speak
 your mind!

[Exeunt]

[modifier] Shell Unix

#!/bin/sh
    echo "Hello world!"

[modifier] Simula

   BEGIN
       outtext("Hello World!");
       outimage;
   END;

[modifier] Silscript

    Intr-aff-{
        aff[Hello world!];
    }Stop-aff-

[modifier] Smalltalk

   Transcript show: 'Hello world!'

Ou

   self inform: 'Hello world!'

[modifier] SML

   print "Hello world!\n";

[modifier] SNOBOL

       OUTPUT = "Hello world!"
   END

[modifier] SQL

CREATE TABLE MESSAGE (TEXT CHAR(15));
    INSERT INTO MESSAGE (TEXT) VALUES ('Hello world!');
    SELECT TEXT FROM MESSAGE;
    DROP TABLE MESSAGE;

Ou (ex : en Oracle)

SELECT 'Hello world!' FROM dual;

Ou (ex en: MySQL )

SELECT 'Hello world!';

Ou, plus simplement

print 'Hello world!.'

Ou (pour le KB-SQL)

SELECT NULL FROM DATA_DICTIONARY.SQL_QUERY
 
    FOOTER ''OR HEADER OR DETAIL OR FINAL event''
    WRITE "Hello world!"

[modifier] STARLET

    RACINE: HELLO_WORLD.

    NOTIONS:
    HELLO_WORLD : ecrire("Hello world!").

[modifier] TACL

   #OUTPUT Hello world!

[modifier] Tcl

puts "Hello world!"

[modifier] Tcl/Tk

pack [button .b -text "Hello world!" -command exit]

[modifier] TeX

   Hello world!
   \bye

[modifier] Turbo Pascal

program Hello_World_in_TP; {titre le programme}
begin
  writeln('Hello World'); {affiche le message et saute une ligne}
  readln; {Sert de pause}
end.

[modifier] Turing

put "Hello world!"

[modifier] TSQL

   Declare @Output varchar(16)
   Set @Output='Hello world!'
   Select @Output

ou, variation plus simple:

   Select 'Hello world!'
   Print 'Hello world!'

[modifier] TI-Basic

Ti 80 à Ti 92 :

:Disp "Hello world!"

Remarque : les guillemets ne sont pas indipensables

:Disp "Hello World!

ou

:Output(X,Y,"Hello world!")

ou plus simplement :

:Output(X,Y,"Hello World!

Où X représente la ligne et Y la colonne.

[modifier] Verilog

module main;
 initial
   begin
     $display("Hello, world");
     $finish ;
   end
endmodule

[modifier] VHDL

 use std.textio.all;
 
 ENTITY hello IS
 END ENTITY hello;
 
 ARCHITECTURE Wiki OF hello IS
   CONSTANT message : string := "hello world";
 BEGIN
   PROCESS
     variable L: line; 
   BEGIN
     write(L, message);
     writeline(output, L);
     wait;
   END PROCESS;
 END ARCHITECTURE Wiki;

[modifier] VBA (Visual Basic for Application)

Sub Main
  MsgBox "Hello world!"
End Sub

[modifier] Visual Basic .NET (Application Console)

Imports System
Public Shared Sub Main()
  Console.WriteLine("Hello World!")
End Sub

[modifier] Visual Basic .NET (Application Windows Forms)

Imports System.Windows.Forms
Public Shared Sub Main()
  MessageBox.Show("Hello World!")
End Sub

Le .Show n'est pas obligatoire mais les parenthèses oui

[modifier] Visual DialogScript 2,3,4 et 5

   Title Hello World!
   Info Hello World!

[modifier] Whitespace

   
   	  	   
		    	
   		  	 	
		    	 
   		 		  
		    		
   		 		  
		    
	  
   		 				
		    	 	
   	 		  
		    		 
   	     
		    			
   			 			
		  
  	   
   		 				
		    	  	
   			  	 
		    	 	 
   		 		  
		    	 		
   		  
	  
		    		  
   	    	
		    		 	
   		 	
		    			 
   	 	 
		    				
    
	
	     
empty-line
    	
empty-line
 			 
empty-line
	  	 
	
     	
	   
empty-line
  	
empty-line
   	 
empty-line
empty-line/EOF

[modifier] XUL

<?xml version="1.0" encoding="ISO-8859-1" ?>
<window title="Hello world"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<description>Hello world</description>
<label value="Hello world" />
</window>

[modifier] Liens externes

  • 99 Bottles of Beer (Site présentant un programme simple écrit en près de 1200 langages différents)