Hallo, Welt! oder auch "Hello World!" (engl.),
ist ein bekanntes Beispielprogramm, das am Anfang fast jeden Programmierkurses vorkommt.
Das fertige Computerprogramm gibt lediglich den Text "Hello world!" (oder etwas ähnliches) auf dem Bildschirm aus. Dieses Programm soll dem angehenden Programmierer zeigen, was alles für ein vollständiges Programm (in der betreffenen Programmiersprache) benötigt wird, und einen ersten Einblick in die Syntax geben.
Line-oriented (aka Console)
with Ada.Text_Io; use Ada.Text_Io; procedure Hello is begin Put_Line ("Hello, world!"); end Hello;
MODEL SMALL IDEAL STACK 100H
DATASEG HW DB 'Hello, world!$'
CODESEG MOV AX, @data MOV DS, AX MOV DX, OFFSET HW MOV AH, 09H INT 21H MOV AX, 4C00H INT 21H END
BEGIN { print "Hello, world!" }
Traditional - Unstructured BASIC 10 PRINT "Hello, world!" 20 END
More modern versions - Structured BASIC print "Hello, world!"
GET "LIBHDR"
LET START () BE $( WRITES ("Hello, world!*N") $)
#include <stdio.h>
int main(void) { printf("Hello, world!\n"); return 0; }
#include <iostream> using namespace std;
int main() { cout << "Hello, world!" << endl; return 0; }
class HelloWorldApp { public static void Main() { System.Console.WriteLine("Hello, world!"); } }
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION. DISPLAY "Hello, world!". STOP RUN.
(format t "Hello world!~%")
class HELLO_WORLD
creation make feature make is local io:BASIC_IO do !!io io.put_string("%N Hello, world!") end -- make end -- class HELLO_WORLD
-module(hello). -export([hello_world/0]).
hello_world() -> io:fwrite("Hello, world!\n").
." Hello, world!" CR
PROGRAM HELLO WRITE(*,10) 10 FORMAT('Hello, world!') STOP END
ON ENTER { "Hello, " "World!" & SAY }
public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } }
print "Hello, world!"
TERM EQU 19 the MIX console device number ORIG 1000 start address START OUT MSG(TERM) output data at address MSG HLT halt execution MSG ALF "MIXAL" ALF " HELL" ALF "O WOR" ALF "LD " END START end of the program
MS-DOS batch
@echo off echo Hello, world!
let main () = print_endline "Hello world!";;
PROC hello: PRINT "Hello, World" ENDP
program Hello; begin writeln('Hello, world!'); end.
print "Hello, world!\n";
<?php print("Hello, world!"); ?>
#!/usr/local/bin/pike int main() { write("Hello, world!\n"); return 0; }
Test: procedure options(main); declare My_String char(20) varying initialize('Hello, world!'); put skip list(My_String); end Test;
print "Hello, world!"
say "Hello, world!"
print "Hello, world!\n"
(display "Hello, world!") (newline)
Benötigt mindestens eine Zeile als Eingabe:
sed -ne '1s/.*/Hello, world!/p'
Transcript show: 'Hello, world!'
print "Hello, world!\n";
OUTPUT = "Hello, world!" END
create table MESSAGE (TEXT char(15)); insert into MESSAGE (TEXT) values ('Hello, world!'); select TEXT from MESSAGE; drop table MESSAGE;
sub main print "Hello, World" end sub
puts "Hello, world!"
:Disp "Hello, world!"
put "Hello, world!"
echo 'Hello, world!'
Graphical User Interfaces - as traditional applications
MsgBox "Hello, world!"
C++ bindings for GTK graphics toolkit
#include <iostream> #include <gtkmm/main.h> #include <gtkmm/button.h> #include <gtkmm/window.h> using namespace std;
class HelloWorld : public Gtk::Window { public: HelloWorld(); virtual ~HelloWorld(); protected: Gtk::Button m_button; virtual void on_button_clicked(); };
HelloWorld::HelloWorld() : m_button("Hello, world!") { set_border_width(10); m_button.signal_clicked().connect(SigC::slot(*this, &HelloWorld::on_button_clicked)); add(m_button); m_button.show(); }
HelloWorld::~HelloWorld() {}
void HelloWorld::on_button_clicked() { cout << "Hello, world!" << endl; }
int main (int argc, char *argv[]) { Gtk::Main kit(argc, argv); HelloWorld helloworld; Gtk::Main::run(helloworld); return 0; }
Windows API (in C)
#include <windows.h>
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
char szClassName[] = "MainWnd"; HINSTANCE hInstance;
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hwnd; MSG msg; WNDCLASSEX wincl;
hInstance = hInst; wincl.cbSize = sizeof(WNDCLASSEX); wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.style = 0; wincl.hInstance = hInstance; wincl.lpszClassName = szClassName; wincl.lpszMenuName = NULL; //No menu wincl.lpfnWndProc = WindowProcedure; wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); //Color of the window wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); //EXE icon wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); //Small program icon wincl.hCursor = LoadCursor(NULL, IDC_ARROW); //Cursor if (!RegisterClassEx(&wincl)) return 0;
hwnd = CreateWindowEx(0, //No extended window styles szClassName, //Class name "", //Window caption WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, //Let Windows decide the left and top positions of the window 120, 50, //Width and height of the window, NULL, NULL, hInstance, NULL);
//Make the window visible on the screen ShowWindow(hwnd, nCmdShow); //Run the message loop while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; switch (message) { case WM_PAINT: hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 15, 3, "Hello, world!", 13); EndPaint(hwnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }
import java.awt.*; import java.awt.event.*;
public class HelloFrame extends Frame { HelloFrame(String title) { super(title); } public void paint(Graphics g) { super.paint(g); java.awt.Insets ins = this.getInsets(); g.drawString("Hello, world!", ins.left + 25, ins.top + 25); } public static void main(String args []) { HelloFrame fr = new HelloFrame("Hello");
fr.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit( 0 ); } } ); fr.setResizable(true); fr.setSize(500, 100); fr.setVisible(true); } }
Graphical User Interfaces - Webbrowser basiert
Java applets work in conjunction with HTML files.
<HTML> <HEAD> <TITLE>Hello World</TITLE> </HEAD> <BODY>
HelloWorld Program says:
<APPLET CODE="HelloWorld.class" WIDTH=600 HEIGHT=100> </APPLET>
</BODY> </HTML>
import java.applet.*; import java.awt.*;
public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello, world!", 100, 50); } }
JavaScript, aka ECMAScript
JavaScript is a scripting language used in HTML files. To demo this program Cut and Paste the following code into any HTML file.
<script language="javascript"> function helloWorld() { javascript: alert("Hello, world!"); } </script>
<a href="javascript:this.location()" onclick="javascript:helloWorld();">Hello World Example</a>
An easier method uses JavaScript implicitly, calling the reserved alert function. Cut and paste the following line inside the <BODY> .... </BODY> HTML tags.
<a href="#" onclick="alert('Hello, world!')">Hello World Example</a>
An even easier method involves using popular browsers' support for the virtual 'javascript' protocol to execute JavaScript code. Enter the following as an Internet address (usually by pasting into the address box):
javascript:alert('Hello, world!')
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box align="center"> <label value="Hello, world!" /> </box> </window>
Exotische Programmiersprachen
30,14,16,101,16,108,16,32,16,111,16,108,1,12,16,72,16,108,16,111,16,87,16,114,16,100,16,33
See [1] for a Hello, World program in 4DL.
\/>>>>>>\+\<<<\+!\>>\+\<<<<\-\<\-!\>>>\+\<<<\-!!+++!\/\-\/>>>>>\+\<<\+\<\+!---!\>>> \+\>\+\<<<\-\<<<\-!\>>>\-!\<<\+\<\+!\>\-\>\-!\>\-!\/\-/>>>>>\+\<<<<<\+!\/\-\/>>>\+\<<\+!
Note: this actually prints "HI" instead of "Hello, world".
84 > 84 > 84 > 84 > 84 > 84 > 84 > 85 \/ 85 < 86 < 86 < 86 < 86 < 86 < 0E < 66 \/ /\ 84 > 84 > 0C > 8C > E5 > 0F 84 > 85 \/ /\ \/ 85 < 86 < 86 < 3E < 0E 84 > 83 < 86 \/ /\ \/ 84 > 84 > 84 > 84 > 84 > 0F 84 > 85 \/ 00 < 00 < 00 < B6 < 0E < B6 < 0E < 86
Note: this actually prints "Hi" instead of "Hello, world".
Baa, badassed areas! Jarheads' arses queasy nude adverbs! Dare address abase adder? *bares baser dadas* HA! Equalize, add bezique, bra emblaze. He (quezal), aeons liable. Label lilac "bulla," ocean sauce! Ends, addends, duodena sounded amends.
"!dlrow olleH">v
, ^_@
main: "Hello, world!\n">out :
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<< +++++++++++++++.>.+++.------.--------.>+.>.
Ingredients. 72 g haricot beans 101 eggs 108 g lard 111 cups oil 32 zucchinis 119 ml water 114 g red salmon 100 g dijon mustard 33 potatoes
Method. Put potatoes into the mixing bowl. Put dijon mustard into the mixing bowl. Put lard into the mixing bowl. Put red salmon into the mixing bowl. Put oil into the mixing bowl. Put water into the mixing bowl. Put zucchinis into the mixing bowl. Put oil into the mixing bowl. Put lard into the mixing bowl. Put lard into the mixing bowl. Put eggs into the mixing bowl. Put haricot beans into the mixing bowl. Liquefy contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish.
Serves 1.
AGb-A#A#+A+%A#DF-AC#
when a=0 then put "Hello, world!" set a=1
Universe of bear hatchery says Hello. World!. It powers the marshy things; the power of the snowmelt overrides.
H
PLEASE DO ,1 <- #13 DO ,1 SUB #1 <- #238 DO ,1 SUB #2 <- #112 DO ,1 SUB #3 <- #112 DO ,1 SUB #4 <- #0 DO ,1 SUB #5 <- #64 DO ,1 SUB #6 <- #238 DO ,1 SUB #7 <- #26
DO ,1 SUB #8 <- #248 DO ,1 SUB #9 <- #168 DO ,1 SUB #10 <- #24 DO ,1 SUB #11 <- #16 DO ,1 SUB #12 <- #158 DO ,1 SUB #13 <- #52 PLEASE READ OUT ,1 PLEASE GIVE UP
(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5 [m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<
"HELLO, WORLD.!" $$
#0<a>0:0#0>e>0:0#0>f>0>0:0#0^f>0:0#0+4>0:0#0#h>0:0#0^f>0:0#0<g>0:0#0>f >0:0#0<e>0:0#0?4>0:0#0^1>0:0#0>1>0:0^0
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
d / ("Hello, world!")
0 'd' 'l' 'r' 'o' 'w' ' ' ',' 'o' 'l' 'l' 'e' 'h' s 0 c 0 ret
hello world
forget
come from "hello" print "Hello, " return
come from "world" print "world !" return
Please see [2] for a Hello, World program in Piet.
Note that this is not a complete "Hello, world!" program.
- - - ..- ...-.---.;newline - - - .-. - ..-.- ...-. ---.;! - - - ...- . . -.---.;d ----. . . -.---.;l ----. . -...---.;r ----. -...---.;o ----...-.- ..-. ---.;W <i didn't feel like doing this part> -..............;output all characters
0a21646c726f77202c6f6c6c6548 , :::::::::::::::::::::::::::: , ) ============================== F O F c =
sidefxio void main print 'H print 'e print 'l print 'l print 'o print ', print as char 32 print 'w print 'o print 'r print 'l print 'd print '!
G GGG >++++++++++>!+++++++!++++++++++!+++!+##!!!!##-G+G G.+++++++++++++++##!!##.++!.+++..+++++++.+!.++! G G!.+++.------.--------.!+.!.G GG
[ `Hello, _32 `world! _13 _10 ] \15 outs \0 halt
; Hello, world in SMITH - version 2 (loop) ; R0 -> index into string (starts at R10) ; R2 -> -1 MOV R0, 10 MOV R2, 0 SUB R2, 1 MOV R[R0], "Hello, world!" MOV TTY, R[R0] SUB R0, R2 MOV R1, R0 SUB R1, 23 NOT R1 NOT R1 MUL R1, 8 COR +1, -7, R1
:V+++++;:XVV;:v-----;:xvv;XXXXXXX++.<XXXXXXXXXX+.V ++..+++.<XXX++.>>XV.XX++++.+++.v-.x++.<XXX+++.<X.>
In the House You are inside the small blue house on Pine St. The floor is carpeted and the walls are paneled in a light coloured wood. The door is to the north. Julie is here.
>JULIE, Hello, world! Julie doesn't respond.
>X JULIE Julie is a twentysomething woman with short brunette hair.
>QUIT
` ``si`k``s.H``s.e``s.l``s.l``s.o``s. ``s.w``s.o``s.r``s.l``s.d``s.!``sri ``si``si``si``si``si``si``si``si`ki
Note: actually prints "What do you want, universe?" in Klingon.
~ nuqneH { ~ 'u' ~ nuqneH disp disp } name nuqneH
Functions: || No functions for this program !! Stuff: 1/Hello is chrs! 1/Sz, 1/Total are all cplx! Text: || Initialize the data !! Hello < "Hello, world!"! Size Hello > Sz! Total < 0! || Take the string length and multiply by 100 !! - Size - 0 Total > Total %10000! || Print and delete a character that many times !! & WORLD < FCHRS (Hello)! & Hello < - Hello FCHRS (Hello)! && %Total! || Add a newline !! WORLD < nl! :Endtext
1 print("Hello world!");
Please see [3] for a Hello, world program in Whitespace.
<print>Hello World</print>
Sonstiges
<HTML> <HEAD> <TITLE>Hello, world!</TITLE> </HEAD> <BODY> Hello, world! </BODY> </HTML>
/font /Courier findfont 24 scalefont font setfont 100 100 moveto (Hello world!) show showpage
\font\HW=cmr10 scaled 3000 \leftline{\HW Hello world} \bye
Hello, world!
That is, the following sequence of characters expressed in hexadecimal notation
48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21