Hallo-Welt-Programm
Hallo Welt! oder auch "Hello, world!" (englisch), ist ein bekanntes Beispielprogramm, das am Anfang fast jedes Programmierkurses vorkommt.
Das fertige Computerprogramm gibt lediglich den Text "Hallo Welt!" (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. Dies gelingt je nach verwendeter Sprache nur mäßig. Auf jeden Fall ist das Programm aber geeignet zu prüfen, ob die Installation einer Programmiersprache gelungen ist und man die grundsätzliche Verwendung (Aufruf, eventuell Kompilierung) verstanden hat.
Der Ausruf "Hallo Welt" ist ein Anglizismus, der in der Praxis oft durch einen anderen Text ersetzt wird, wobei meistens keine literarischen Höhenflüge entstehen.
Zeilenorientiert (Konsole)
write 'Hallo Welt!'.
with Ada.Text_Io; use Ada.Text_Io; procedure Hallo is begin Put_Line ("Hallo Welt!"); end Hallo;
'BEGIN' OUTSTRING(2,'('HALLO, WELT')'); 'END'
MODEL SMALL IDEAL STACK 100H DATASEG HW DB 'Hallo Welt!$' CODESEG MOV AX, @data MOV DS, AX MOV DX, OFFSET HW MOV AH, 09H INT 21H MOV AX, 4C00H INT 21H END
BEGIN { print "Hallo Welt!" }
Traditionelles, unstrukturiertes BASIC:
10 PRINT "Hallo Welt!" 20 END
Eher modernes, strukturiertes BASIC
print "Hallo Welt!"
GET "LIBHDR" LET START () BE $( WRITES ("Hallo Welt!*N") $)
print("Hallo Welt!");
#include <stdio.h> int main(void) { printf("Hallo Welt!\n"); return 0; }
Erklärung siehe: Hallo-Welt-Programm in C
#include <iostream> int main() { std::cout << "Hallo Welt!" << std::endl; }
int main() { System::Console::WriteLine("Hallo MAY!"); }
class HalloWeltApp { public static void Main() { System.Console.WriteLine("Hallo Welt!"); } }
IDENTIFICATION DIVISION. PROGRAM-ID. HALLO-WELT. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. DISPLAY "Hallo Welt!". STOP RUN.
(format t "Hallo Welt!~%")
program HalloWelt; {$APPTYPE CONSOLE} begin writeln ('Hallo Welt!'); end.
in der Variante tdbengine:
module helloworld procedure Main cgiclosebuffer cgiwriteln("content-type: text/html") cgiwriteln("") cgiwriteln("Hallo Welt!") endproc
class HALLO_WELT creation make feature make is do io.put_string("Hallo Welt!%N") end -- make end -- class HALLO_WELT
Emacs Lisp
(print "Hallo Welt")
-module(Hallo). -export([Hallo_Welt/0]). Hallo_Welt() -> io:fwrite("Hallo Welt!\n").
: halloforth ( -- ) ." Hallo Welt!" ;
PROGRAM HALLO WRITE(*,10) 10 FORMAT('Hallo Welt!') STOP END
main = putStrLn "Hallo Welt!"
"Hallo Welt" print
ON ENTER { "Hallo " "Welt!" & SAY }
public class Hallo { public static void main(String[] args) { System.out.println("Hallo Welt!"); } }
J#
public class Hallo { public static void Main(System.String[] args) { System.Console.Out.WriteLine("Hallo Welt!"); } }
print "Hallo Welt!"
print word "Hallo Welt!"
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
@echo Hallo Welt!
WRITE 'Hallo Welt' * END
let main () = print_endline "Hallo Welt!";;
PROC Hallo: PRINT "Hallo Welt" ENDP
program Hallo; begin writeln('Hallo Welt!'); end.
print "Hallo Welt!\n";
<?php echo 'Hallo Welt!'; ?>
oder auch
<?php print("Hallo Welt!"); ?>
int main() { write("Hallo Welt!\n"); return 0; }
Test: procedure options(main); declare My_String char(20) varying init('Hallo Welt!'); put skip list(My_String); end Test;
BEGIN DBMS_OUTPUT.PUT_LINE('Hallo Welt!'); END;
?- write("Hallo Welt!"), nl.
OpenConsole() Print("Hallo Welt!") CloseConsole()
print "Hallo Welt!"
say "Hallo Welt!"
<< "Hallo Welt!" 1 Disp>>
puts "Hallo Welt!"
(display "Hallo Welt!") (newline)
Benötigt mindestens eine Zeile als Eingabe:
sed -ne '1s/.*/Hallo Welt!/p'
Transcript show: 'Hallo Welt!'
print "Hallo Welt!\n";
OUTPUT = "Hallo Welt!" END
RACINE: HELLO_WORLD. NOTIONS: HELLO_WORLD : ecrire("Hallo Welt!").
select 'Hallo Welt!' as message;
Für Oracle-Datenbanken
select 'Hallo Welt!' from dual;
Für IBM-DB2
select 'Hallo Welt!' from sysibm.sysdummy1;
oder
values('Hallo Welt!');
sub main print "Hallo Welt!" end sub
puts "Hallo Welt!"
:Disp "Hallo Welt!"
put "Hallo Welt!"
echo 'Hallo Welt!'
Imports System Module Main Sub Main() Console.WriteLine("Hallo Welt!") End Sub End Module
Grafische Benutzeroberflächen – als traditionelle Anwendungen
display dialog "Hallo Welt!"
#include <iostream> #include <gtkmm/main.h> #include <gtkmm/button.h> #include <gtkmm/window.h> using namespace std; class HalloWelt : public Gtk::Window { public: HalloWelt(); virtual ~HalloWelt(); protected: Gtk::Button m_button; virtual void on_button_clicked(); }; HalloWelt::HalloWelt() : m_button("Hallo Welt!") { set_border_width(10); m_button.signal_clicked().connect(SigC::slot(*this, &HalloWelt::on_button_clicked)); add(m_button); m_button.show(); } HalloWelt::~HalloWelt() {} void HalloWelt::on_button_clicked() { cout << "Hallo Welt!" << endl; } int main (int argc, char *argv[]) { Gtk::Main kit(argc, argv); HalloWelt HalloWelt; Gtk::Main::run(HalloWelt); return 0; }
#include <qapplication.h> #include <qpushbutton.h> int main( int argc, char **argv ) { QApplication a( argc, argv ); QPushButton hallo( "Hallo world!", 0 ); hello.resize( 100, 30 ); a.setMainWidget( &hallo ); hallo.show(); return a.exec(); }
namespace Hallo_Welt { using System; using System.Windows.Forms; public class HalloWelt : Form { public static void Main() { Application.Run(new HalloWelt()); } public HalloWelt() { this.Text = "Hallo Welt !" ; } } }
program window WINDOW('Hallo Welt'),AT(,,300,200),STATUS,SYSTEM,GRAY,DOUBLE,AUTO END code open(window) show(10,10,'Hallo Welt') accept end close(window)
program HalloWelt; uses Dialogs; begin ShowMessage('Hallo Welt!'); end.
in der Variante VDP:
module helloworld procedure Main Message("Hallo Welt!") endproc
PUBLIC SUB Form_Enter() PRINT "Hallo Welt" END
- AWT:
import java.awt.Frame; import java.awt.Label; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class HalloWeltFenster extends Frame{ public HalloWeltFenster(){ Label halloWeltLabel = new Label("Hallo Welt!"); this.add(halloWeltLabel); addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } } ); setTitle("Hallo Welt!"); setResizable(false); setLocation(350,320); setSize(160,60); setVisible(true); } public static void main(String[] args){ new HalloWeltFenster(); } }
import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; public class HelloWorld extends JFrame { public HelloWorld() { JLabel halloWeltLabel = new JLabel("Hallo Welt!"); this.getContentPane().add(halloWeltLabel); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); this.setTitle("Hallo Welt!"); this.setResizable(false); this.setLocation(350, 320); this.setSize(160, 60); this.setVisible(true); } public static void main(String[] args) { HelloWorld helloWorld1 = new HelloWorld(); } }
(alert "Hallo Welt!")
MessageRequester("","Hallo Welt")
label .label1 -text "Hallo Welt" pack .label1
MessageBox.Show("Hallo Welt!")
MsgBox "Hallo Welt!"
import waba.ui.*; import waba.fx.*; public class HelloWorld extends MainWindow { public void onPaint(Graphics g) { g.setColor(0, 0, 0); g.drawText("Hallo Welt!", 0, 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, "Hallo Welt!", 13); EndPaint(hwnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }
Grafische Benutzeroberflächen – Webbrowser-basiert
Java-Applets funktionieren in Verbindung mit HTML.
Die Java-Datei:
import java.applet.*; import java.awt.*; public class HalloWelt extends Applet { public void paint(Graphics g) { g.drawString("Hallo Welt!", 100, 50); } }
Nachfolgend der Code zum Einbau in eine HTML-Seite.
Vom W3C empfohlen:
<object classid="java:HalloWelt.class" codetyte="application/java-vm" width="600" height="100"> </object>
Für Kompatibilität zu sehr alten Browsern (nicht empfohlen):
<applet code="HalloWelt.class" width="600" height="100"> </applet>
JavaScript, alias ECMAScript
JavaScript ist ein Skriptsprache, die insbesondere in HTML-Dateien verwendet wird. Der nachfolgende Code kann in HTML-Quelltext eingebaut werden:
<script type="text/javascript"> alert("Hallo Welt!"); </script>
Oder als direkte Ausgabe:
<script type="text/javascript"> document.write("Hallo Welt!"); </script>
<script language="VBScript"> MsgBox "Hallo Welt!" </script>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box align="center"> <label value="Hallo Welt!" /> </box> </window>
<?Mapping ClrNamespace="System" Assembly="mscorlib" XmlNamespace=" http://www.gotdotnet.com/team/dbox/mscorlib/System" ?> <Object xmlns=" http://www.gotdotnet.com/team/dbox/mscorlib/System" xmlns:def="Definition" def:Class="MyApp.Hello"> <def:Code> <![CDATA[ Shared Sub Main() '{ System.Console.WriteLine("Hallo Welt!")' ; '} End Sub ]]> </def:Code> </Object>
Exotische Programmiersprachen (auch esoterisch genannt)
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
Siehe [1] für ein Hallo-Welt-Programm in 4DL.
\/>>>>>>\+\<<<\+!\>>\+\<<<<\-\<\-!\>>>\+\<<<\-!!+++!\/\-\/>>>>>\+\<<\+\<\+!---!\>>> \+\>\+\<<<\-\<<<\-!\>>>\-!\<<\+\<\+!\>\-\>\-!\>\-!\/\-/>>>>>\+\<<<<<\+!\/\-\/>>>\+\<<\+!
Anmerkung: Dies gibt "HI" statt "Hallo Welt" aus.
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
Anmerkung: Das folgende Programm gibt "Hi" statt "Hallo Welt" aus.
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.
"!tleW ollaH">,:v ^ _@
main: "Hallo Welt!\n">out :
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<< +++++++++++++++.>.+++.------.--------.>+.>.
AGb-A#A#+A+%A#DF-AC#
when a=0 then put "Hallo Welt!" set a=1
Universe of bear hatchery says Hallo. Welt!. 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<
"WIlli
$$
#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 / ("Hallo Welt!")
0 'd' 'l' 'r' 'o' 'w' ' ' ',' 'o' 'l' 'l' 'e' 'h' s 0 c 0 ret
Hallo Welt forget come from "Hallo" print "Hallo " return come from "Welt" print "Welt!" return
Beachten Sie, dass dies kein komplettes Hallo-Welt-Programm ist.
- - - ..- ...-.---.;newline - - - .-. - ..-.- ...-. ---.;! - - - ...- . . -.---.;d ----. . . -.---.;l ----. . -...---.;r ----. -...---.;o ----...-.- ..-. ---.;W
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
[ `Hallo, _32 `Welt! _13 _10 ] \15 outs \0 halt
; Hallo Welt 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], "Hallo Welt!" 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.>
` ``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
Anmerkung: Gibt "Was möchtest du, Universum?" auf Klingonisch aus.
~ nuqneH { ~ 'u' ~ nuqneH disp disp } name nuqneH
Functions: || No functions for this program !! Stuff: 1/Hallo is chrs! 1/Sz, 1/Total are all cplx! Text: || Initialize the data !! Hallo < "Hallo Welt!"! Size Hallo > Sz! Total < 0! || Take the string length and multiply by 100 !! - Size - 0 Total > Total %10000! || Print and delete a character that many times !! & WELT < FCHRS (Hallo)! & Hallo < - Hallo FCHRS (Hallo)! && %Total! || Add a newline !! WELT < nl! :Endtext
1 print("Hallo Welt!");
In [ http://compsoc.dur.ac.uk/whitespace/hworld.ws [1]] finden sie ein "Hallo Welt" Programm in Whitespace.
<print>Hallo Welt</print>
48<>>>>>ZT<>ZT<> Hello | <>ZT>>ZT<>ZT<>ZT World!| <<<<65<>6F<>6F<>6C<>>>>> >>>2<>ZT<>ZT<>ZT<>ZT<<<8 ZT<<<<<<6C<>20<>72<>64<< ><ZT<<<<<>ZT<>ZT<>ZT><<5 >>>>ZT><<<<<6C<>57<>ZT<< >>ZT><ZT><<<<<ZT<<ZT><<7 ZT<<21<>ZT><ZT>>ZT<<<<<| ><ZT<>ZT><42<<<<<>ZT by| >>>>ZT><21<>>>> Philipp| >>>>><ZT<<ZT Winterberg| -------EXIT--[ ZT ]----| -[www.winterbergs.de]-/
Textauszeichnungssprachen
Die folgenden Sprachen sind keine Programmiersprachen, sondern Textauszeichnungssprachen, also Sprachen, mit denen man einen im Computer gespeicherten Text für die Ausgabe auf dem Bildschirm oder mit dem Drucker formatieren kann. (Allerdings kann man PostScript und TeX durchaus auch als vollwertige Programmiersprachen ansehen.) Analog zum "Hallo Welt!"-Programm ist ein "Hallo Welt!"-Dokument in einer dieser Sprachen ein Beispieldokument, das nur den Text "Hallo Welt" enthält.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Hallo Welt!</title> </head> <body> <p>Hallo Welt!</p> </body> </html>
/Courier findfont 24 scalefont setfont 100 100 moveto (Hallo Welt!) show showpage
{\rtf1\ansi\deff0 {\fonttbl {\f0 Courier New;}} \f0\fs20 Hallo Welt! }
\font\HW=cmr10 scaled 3000 \leftline{\HW Hallo Welt} \bye