Hello world (programma)

Uit Wikipedia, de vrije encyclopedie
Een grafische versie van Hello world in Perl

Een Hello world-programma is een eenvoudig computerprogramma dat niets anders doet dan de tekst "Hello world" op het scherm tonen.

Een dergelijk programma wordt meestal als eerste voorbeeld gebruikt in een cursus programmeren in een bepaalde programmeertaal of -omgeving. Het wordt tevens gebruikt om na te gaan of de nodige basisprogrammeeromgeving aanwezig is en functioneert. Dit basisvoorbeeld wordt vervolgens in de cursus gebruikt als opstapje naar het schrijven van geavanceerdere programma's. In het verlengde hiervan gebruiken ook verschillende cursussen en boeken van computertalen een Hello world-variant als eerste kennismaking en startvoorbeeld.

Voor zover bekend werd de eerste versie van Hello world gebruikt door de makers van de programmeertaal C om hun programmeertaal te laten zien. Het toont de basale geschiktheid van een programmeertaal aan om via een uitvoerapparaat met een gebruiker te communiceren.

In 1974 kwam het voor in een intern memorandum van Bell Labs door Brian Kernighan: Programming in C: A Tutorial (Programmeren in C: Een leertekst).[1] Hierin werd het aangeduid als "een eenvoudig C-programma".

main( ) {
        printf("hello, world");
}

De taal C was in die tijd nog volop in ontwikkeling, en toen het programma in 1978 voor het eerst gepubliceerd werd, in The C programming language (De programmeertaal C) van Kernigan & Ritchie[2], was het als volgt geworden:

#include <stdio.h>

int main(void)
{
    printf("hello, world\n");
    return 0;
}

Sindsdien is het gebruikelijk een nieuwe programmeertaal zo voor eerste kennismaking te presenteren. De lijst die nu volgt, geeft ook (arbitraire) uitwerkingen in programmeertalen die al eerder dan C bestonden.

'Hello world' in verschillende programmeertalen[bewerken | brontekst bewerken]

ABAP[bewerken | brontekst bewerken]

  REPORT HELLO.
  WRITE 'Hello world'.

Active Server Pages[bewerken | brontekst bewerken]

Korte notatie:

 <%="Hello world"%>

Lange notatie:

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

Algol 68[bewerken | brontekst bewerken]

 BEGIN
   print (("Hello world", new line));
 END

APL[bewerken | brontekst bewerken]

 ''HELLO''
[1] ''HELLO WORLD''

AutoIt3[bewerken | brontekst bewerken]

 Msgbox (0, "Hello world", "Hello world" )

AWK[bewerken | brontekst bewerken]

 BEGIN { print "Hello world" }

BASIC[bewerken | brontekst bewerken]

 10 PRINT "Hello world"

Beta[bewerken | brontekst bewerken]

 (# do 'Hello world' -> putline #);

Boo[bewerken | brontekst bewerken]

 print "Hello world"

Brainfuck[bewerken | brontekst bewerken]

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

C[bewerken | brontekst bewerken]

 #include <stdio.h>
 
 int main(void)
 {
   printf("Hello world\n");
   return 0;
 }

C/AL[bewerken | brontekst bewerken]

 message('Hello world');

C++[bewerken | brontekst bewerken]

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

C#[bewerken | brontekst bewerken]

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

Caml[bewerken | brontekst bewerken]

 print_string "Hello world"; flush std_out;;

Clean[bewerken | brontekst bewerken]

module hello

Start = "Hello world"

Clipper[bewerken | brontekst bewerken]

 ? "Hello world"

of

 @ 3,20 SAY "Hello world"

COBOL[bewerken | brontekst bewerken]

Mogelijk voorbeeld volgens de standaarden COBOL '68, COBOL '74 en COBOL '85 (ANSI):

 000010 IDENTIFICATION DIVISION.
 000020 PROGRAM-ID.   HELLOWORLD.
 000030 DATE-WRITTEN. 10/08/04 00:04.
 000040 AUTHOR.       UNKNOWN AUTHOR.
 000050
 000100 ENVIRONMENT DIVISION.
 000200 CONFIGURATION SECTION.
 000210 SOURCE-COMPUTER. MAINFRAME.
 000220 OBJECT-COMPUTER. MAINFRAME.
 000230
 000300 DATA DIVISION.
 000310 WORKING-STORAGE SECTION.
 000320 01  TEXT PIC X(12)
 000330    VALUE "HELLO, WORLD".
 000410
 000500 PROCEDURE DIVISION.
 000600 MAIN-LOGIC SECTION.
 000700 MAIN-LOGIC-BEGIN.
 000710     DISPLAY TEKST.
 000600 MAIN-LOGIC-END.
 000700     STOP RUN.

Niet al deze code hoeft in alle gevallen gebruikt te worden. In de COBOL 2002-(ISO)-standaard zijn bepaalde taalelementen zelfs afgeschaft. Onderstaand programma zal in COBOL 2002 hetzelfde resultaat hebben:

 PROGRAM-ID.     HELLOWORLD.
 DATE-WRITTEN.   10/18/12 12:50.
 AUTHOR.         UNKNOWN AUTHOR.
 
 PROCEDURE DIVISION.
   DISPLAY "Hello world"
   STOP RUN.

CPS/PL1[bewerken | brontekst bewerken]

PUT LIST ("Hello world");

D[bewerken | brontekst bewerken]

 import std.stdio;
 
 public int main(in char[][] args) {
     writefln("Hello world");
     return 0;
 }

Expect[bewerken | brontekst bewerken]

 send_user "Hello world\n";

F#[bewerken | brontekst bewerken]

 printfn "Hello World"

Fortran[bewerken | brontekst bewerken]

     PROGRAM HELLO
     WRITE (*,100)
     STOP
 100 FORMAT ('HELLO, WORLD' /)
     END

- of -

     PROGRAM HELLO
     PRINT *,'HELLO, WORLD'
     END

Merk op dat onderkast (kleine letters) aanvankelijk niet werd gebruikt.

GML[bewerken | brontekst bewerken]

 draw_text(0,0,"Hello world");

- of -

 show_message("Hello world");

Haskell[bewerken | brontekst bewerken]

main :: IO ()
main = putStrLn "Hello world"

GDScript[bewerken | brontekst bewerken]

func _ready():
	print("Hello world")

Google Go[bewerken | brontekst bewerken]

 package main
  
 import "fmt"
 
 func main() {
     fmt.Println("Hello world")
 }

INTERCAL[bewerken | brontekst bewerken]

DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP

Java[bewerken | brontekst bewerken]

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

JavaScript[bewerken | brontekst bewerken]

 document.write('Hello world');

Of:

 console.log('Hello world');

Of:

 alert('Hello world');

Of:

 document.body.innerHTML = 'Hello world';

JavaScript Bookmarklet[bewerken | brontekst bewerken]

 javascript:'Hello world'

of

 javascript:alert("Hello world")

Javascript Node.js HTTP-server[bewerken | brontekst bewerken]

var http = require('http');
http.createServer(
  function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
  }
).listen(8000);
console.log('Server running at http://localhost:8000/');

Lisp[bewerken | brontekst bewerken]

 (print "Hello world\n")

Liberty BASIC[bewerken | brontekst bewerken]

 notice "Hello world"

Lua[bewerken | brontekst bewerken]

print("Hello World")

Malbolge[bewerken | brontekst bewerken]

 ('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
 `CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>

Oberon[bewerken | brontekst bewerken]

 MODULE Hello;
 IMPORT 
  Out;
 PROCEDURE Do*;
 BEGIN
  Out.String("Hello world"); 
  Out.Ln	
 END Do;
 END Hello.


Objective-C[bewerken | brontekst bewerken]

 #include <Foundation/Foundation.h>
 int main (int argc, const char *argv[])
 {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        NSLog (@"Hello world");
        [pool drain];
        return 0;
 }

Pascal[bewerken | brontekst bewerken]

 program helloworld(output);
 begin
  writeln('Hello world')
 end.

Perl[bewerken | brontekst bewerken]

 print "Hello world\n";

PHP: Hypertext Preprocessor[bewerken | brontekst bewerken]

Korte notatie:

 <?="Hello world"?>

Lange notatie:

 <?php
 echo "Hello world";
 ?>

Piet[bewerken | brontekst bewerken]

Hello world in Piet

PL/1[bewerken | brontekst bewerken]

 Hello: proc options(main);
     put list ('Hello world');
 end Hello;

PL/pgSQL[bewerken | brontekst bewerken]

 begin
     dbms_output.put_line('Hello world');
 end;

Prolog[bewerken | brontekst bewerken]

 write('Hello world'), nl.

Python[bewerken | brontekst bewerken]

Python 2[bewerken | brontekst bewerken]

 print "Hello world"

Python 3[bewerken | brontekst bewerken]

 print("Hello world")

قلب[bewerken | brontekst bewerken]

 (قول "مرحبا يا عالم!")

RPG[bewerken | brontekst bewerken]

 I              'HELLO WORLD'        C         HELLO
 C                     DSPLY          HELLO
 C                     RETRN

Ruby[bewerken | brontekst bewerken]

 print "Hello world"

Rust[bewerken | brontekst bewerken]

fn main() {
    println!("Hello World!");
}

SAS[bewerken | brontekst bewerken]

data _null_;
 put "Hello world";
run;

of:

%put Hello world;

Scala[bewerken | brontekst bewerken]

Een versie die in een command-line-interface gestart kan worden:[3]

// Hello World in Scala

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

Een versie met een grafische gebruikersomgeving:

import swing._

object HelloWorld extends SimpleSwingApplication {
  def top = new MainFrame {
    title = "Hello world"
    contents = new Button {
      text = "Click Me!"
    }
  }
}

Seed7[bewerken | brontekst bewerken]

 $ include "seed7_05.s7i";
 
 const proc: main is func
   begin
     writeln("Hello world");
   end func;

Shelltalen[bewerken | brontekst bewerken]

 echo Hello world

Deze vorm werkt in (bijna) alle shelltalen: de Bourne-shell, korn-shell, Bourne again shell, POSIX-shell, C-shell en de DOS- en Windows-shells. In sommige shelltalen kan het volgende alternatief gebruikt worden:

 printf "Hello world\n"

Swift[bewerken | brontekst bewerken]

 print("Hello, World!")

Tcl[bewerken | brontekst bewerken]

 puts "Hello world"

Visual Basic[bewerken | brontekst bewerken]

 MessageBox.show("Hello world")

of

 MsgBox("Hello world")

of

 Debug.print("Hello world")

Visual Basic script[bewerken | brontekst bewerken]

 MsgBox("Hello world")

Visual DialogScript[bewerken | brontekst bewerken]

info Hello world

WebAssembly Text Format[bewerken | brontekst bewerken]

Door het importeren van "console.log" van javascript

(module
  (import "console" "log" (func $log (param i32) (param i32)))
  (import "js" "mem" (memory 1))
  
  (data (i32.const 0) "Hello World") ;; string in global memory schrijven
  (func (export "helloWorld")
      i32.const 0
      i32.const 11
      call $log
  )
)

Het bovenstaande kan dan na compileren naar een .wasm bestand gebruikt worden in javascript:

function consoleLogString(offset, length) {
  var bytes = new Uint8Array(memory.buffer, offset, length);
  var string = new TextDecoder('utf8').decode(bytes);
  console.log(string);
}

var memory = WebAssembly.Memory({initial: 1});

var importObject = {
  console: {
    log: consoleLogString
  }, js: {
    mem: memory
  }
};

WebAssembly.instantiateStreaming(fetch("log.wasm"), importObject)
  .then(obj => {
    obj.instance.exports.helloWorld();
  });

Hello world in verschillende opmaaktalen[bewerken | brontekst bewerken]

HTML[bewerken | brontekst bewerken]

 <html>
   <head>
     <title>
       Hello world
     </title>
   </head>
   <body>
     <p>Hello world</p>
   </body>
 </html>

Of zonder titel:

 <html>
   <body>
     <p>Hello world</p>
   </body>
 </html>

LaTeX[bewerken | brontekst bewerken]

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

XML[bewerken | brontekst bewerken]

 <?xml version="1.0"?>
 <tekst>Hello world</tekst>

Externe link[bewerken | brontekst bewerken]

Zie de categorie Hello World van Wikimedia Commons voor mediabestanden over dit onderwerp.