"Hello World" is the first program one usually writes when learning a new programming language. This collection includes 127 Hello World programs in many more-or-less well known languages.
The list was compiled by Wolfram Rösler with help from many following people, most of them from MausNet. Click here for a list of all contributors.
Last update: Jul 18, 2002.
Please send all comments and contributions to wolfram@roesler-ac.de.
REPORT ZHB00001. *Hello world in ABAP/4 * WRITE: 'Hello world'.Back to index
-- Hello World in Ada with TEXT_IO; use TEXT_IO; procedure Hello is pragma MAIN; begin PUT ("Hello World!"); end Hallo;Back to index
'BEGIN' 'COMMENT' Hello World in Algol 60; OUTPUT(4,'(''('Hello World!')',/')') 'END'Back to index
( # Hello World in Algol 68 # print(("Hello World!",newline)))Back to index
Hello World for APL. "[]" and "<-" are a single character in APL. Comment character is Alt-comma. []<-'Hello World!'Back to index
Hello World in AppleScript tell application "Finder" display dialog "Hello World" end tellBack to index
; Hello World for 6502 Assembler (C64) ldy #0 beq in loop: jsr $ffd2 iny in: lda hello,y bne loop rts hello: .tx "Hello World!" .by 13,10,0Back to index
; Hello World in 68000 Assembler for dos.library (Amiga) move.l #DOS move.l 4.w,a6 jsr -$0198(a6) ;OldOpenLibrary move.l d0,a6 beq.s .Out move.l #HelloWorld,d1 A) moveq #13,d2 jsr -$03AE(a6) ;WriteChars B) jsr -$03B4 ;PutStr move.l a6,a1 move.l 4.w,a6 jsr -$019E(a6) ;CloseLibrary .Out rts DOS dc.b 'dos.library',0 HelloWorld dc.b 'Hello World!',$A,0Back to index
; Hello World in 68000 Assembler (Atari ST) move.l #helloworld,-(A7) move #9,-(A7) trap #1 addq.l #6,A7 move #0,-(A7) trap #1 helloworld: dc.b "Hello World!",$0d,$0a,0Back to index
; Hello World in 68008 Assembler (Sinclar QL) move.l #0,a0 lea.l mess,a1 move.w $d0,a2 jsr (a2) rts mess dc.w 12 dc.b 'Hello World!',10 endBack to index
ITLE 'Hello World for IBM Assembler/370 (VM/CMS)' HELLO START BALR 12,0 USING *,12 * WRTERM 'Hello World!' * SR 15,15 BR 14 * END HELLOBack to index
; Hello World for Intel Assembler (MSDOS) mov ax,cs mov ds,ax mov ah,9 mov dx, offset Hello int 21h xor ax,ax int 21h Hello: db "Hello World!",13,10,"$"Back to index
; Hello World in Assembler for the DEC PDP-11 with the ; RSX-11M-PLUS operating system ; .title Hello .ident /V0001A/ .mcall qiow$s, exit$s .psect $code,ro,i start: qiow$s #5,#5,,,,<#str, #len, #40> exit$s .psect $data,ro,d str: .ascii / Hello World!/ len=.-str .end startBack to index
; This is "Hello World" program for Z80 and TMS9918 / TMS9928 / TMS9929 / ; V9938 or V9958 VDP ; That means, that this should work on SVI, MSX, Colecovision, Memotech, ; TI-99 and many other ; Z80 based home computers or game consoles. ; ; Because we don't know what system is used, we don't know where RAM ; is, so we can't use stack ; in this program. ; ; This version of Hello World was written by Timo "NYYRIKKI" Soilamaa ; 17.10.2001 ; ;---------------------------------------------------------------------- ; Configure this part: DATAP: EQU #98 ; VDP Data port #98 works on all MSX models ; (TMS9918/TMS9929/V9938 or V9958) ; #80 works on SVI ; (for other platforms you have to figure this out by your self) CMDP: EQU #99 ; VDP Command port #99 works on all MSX models ; (TMS9918/TMS9929/V9938 or V9958) ; #81 works on SVI ; (for other platforms you have to figure this out by your self) ;----------------------------------------------------------------------- ; Program starts here: ORG 0 ; Z80 starts always from here when power is turned on DI ; We don't know, how interrupts works in this system, so we disable them. ; Let's set VDP write address to #0000 XOR A OUT (CMDP),A LD A,#40 OUT (CMDP),A ; Now let's clear first 16Kb of VDP memory LD B,0 LD HL,#3FFF LD C,DATAP CLEAR: OUT (C),B DEC HL LD A,H OR L NOP ; Let's wait 8 clock cycles just in case VDP is not quick enough. NOP JR NZ,CLEAR ; Now it is time to set up VDP registers: ;---------------------------------------- ; Register 0 to #0 ; ; Set mode selection bit M3 (maybe also M4 & M5) to zero and ; disable external video & horizontal interrupt LD C,CMDP LD E,#80 OUT (C),A OUT (C),E ;---------------------------------------- ; Register 1 to #50 ; ; Select 40 column mode, enable screen and disable vertical interrupt LD A,#50 INC E OUT (C),A OUT (C),E ;---------------------------------------- ; Register 2 to #0 ; ; Set pattern name table to #0000 XOR A INC E OUT (C),A OUT (C),E ;---------------------------------------- ; Register 3 is ignored as 40 column mode does not need color table ; INC E ;---------------------------------------- ; Register 4 to #1 ; Set pattern generator table to #800 INC A INC E OUT (C),A OUT (C),E ;---------------------------------------- ; Registers 5 (Sprite attribute) & 6 (Sprite pattern) are ignored ; as 40 column mode does not have sprites INC E INC E ;---------------------------------------- ; Register 7 to #F0 ; Set colors to white on black LD A,#F0 INC E OUT (C),A OUT (C),E ;---------------------------------------- ; Let's set VDP write address to #808 so, that we can write ; character set to memory ; (No need to write SPACE it is clear char already) LD A,8 OUT (C),A LD A,#48 OUT (C),A ; Let's copy character set LD HL,CHARS LD B, CHARS_END-CHARS COPYCHARS: LD A,(HL) OUT (DATAP),A INC HL NOP ; Let's wait 8 clock cycles just in case VDP is not quick enough. NOP DJNZ COPYCHARS ; Let's set write address to start of name table XOR A OUT (C),A LD A,#40 OUT (C),A ; Let's put characters to screen LD HL,ORDER LD B,ORDER_END-ORDER COPYORDER: LD A,(HL) OUT (DATAP),A INC HL JR OVERNMI NOP NOP ; Here is address #66, that is entry for NMI RETN ;Return from NMI OVERNMI: DJNZ COPYORDER ; The end HALT ; Character set: ; -------------- ORDER: DEFB 1,2,3,3,4,0,5,4,6,3,7 ORDER_END: CHARS: ; H DEFB %10001000 DEFB %10001000 DEFB %10001000 DEFB %11111000 DEFB %10001000 DEFB %10001000 DEFB %10001000 DEFB %00000000 ; e DEFB %00000000 DEFB %00000000 DEFB %01110000 DEFB %10001000 DEFB %11111000 DEFB %10000000 DEFB %01110000 DEFB %00000000 ; l DEFB %01100000 DEFB %00100000 DEFB %00100000 DEFB %00100000 DEFB %00100000 DEFB %00100000 DEFB %01110000 DEFB %00000000 ; o DEFB %00000000 DEFB %00000000 DEFB %01110000 DEFB %10001000 DEFB %10001000 DEFB %10001000 DEFB %01110000 DEFB %00000000 ; W DEFB %10001000 DEFB %10001000 DEFB %10001000 DEFB %10101000 DEFB %10101000 DEFB %11011000 DEFB %10001000 DEFB %00000000 ; r DEFB %00000000 DEFB %00000000 DEFB %10110000 DEFB %11001000 DEFB %10000000 DEFB %10000000 DEFB %10000000 DEFB %00000000 ; d DEFB %00001000 DEFB %00001000 DEFB %01101000 DEFB %10011000 DEFB %10001000 DEFB %10011000 DEFB %01101000 DEFB %00000000 chars_end:Back to index
Hello World for Microsoft ASP (in JavaScript) <%@ language="javascript" %> <html><body> <% Response.Write('Hello World!'); %> </body></html>Back to index
Hello World for Microsoft ASP (in VBScript) <%@ language="vbscript" %> <html><body> <% Response.write "Hello World!" %> </body></html>Back to index
# Hello World in awk BEGIN { print "Hello World!" exit }Back to index
/* Hello World in B */ main() { extern a, b, c; putchar (a); putchar (b); putchar (c); putchar ('!*n'); } a 'hell' ; b 'o, w' ; c 'orld' ;Back to index
10 REM Hello World in BASIC 20 PRINT "Hello World!"Back to index
// Hello world in BCLP GET "libhdr" LET start() = VALOF $( writes("Hello world*N") RESULTIS 0 $)Back to index
{ *** Hello World in BETA ***} (# do 'Hello World!'->putLine #)Back to index
Hello World in BrainF***, posted by Dmitri Katchalov <dmitrik@my-deja.com> on comp.lang.misc on Feb. 14, 2000. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------- -----------------------------------------------------.----------- -.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++.--------.+++.------.--------.----------- --------------------------------------------------------.Back to index
/BEGIN-PROCEDURE LOGGING=N /REMARK "HELLO WORLD" IN BS2000 (SDF) /ASSIGN-SYSDTA TO-FILE=*SYSCMD /WRITE-TEXT 'HELLO WORLD!' /SET-JOB-STEP /ASSIGN-SYSDTA TO-FILE=*PRIMARY /END-PROCEDUREBack to index
// Hello World in C++ #include <iostream.h> main() { cout << "Hello World!" << endl; return 0; }Back to index
// Hello World in ISO C++ #include <iostream> int main() { std::cout << "Hello World!" << std::endl; }Back to index
// Hello World in C++ for Microsoft Foundation Classes // (Microsoft Visual C++). #include <afxwin.h> class CHello : public CFrameWnd { public: CHello() { Create(NULL,_T("Hello World!"),WS_OVERLAPPEDWINDOW,rectDefault); } }; class CHelloApp : public CWinApp { public: virtual BOOL InitInstance(); }; BOOL CHelloApp::InitInstance() { m_pMainWnd = new CHello(); m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE; } CHelloApp theApp;Back to index
// Hello World in C++ for the Qt framework #include <qapplication.h> #include <qlabel.h> int main(int argc, char *argv[]) { QApplication a(argc, argv); QLabel l("Hello World!", 0); l.setCaption("Test"); l.setAlignment(Qt::AlignCenter); l.resize(300, 200); a.setMainWidget(&l); l.show(); return(a.exec()); }Back to index
/* Hello World in C, Ansi-style */ #include <stdio.h> #include <stdlib.h> int main(void) { puts("Hello World!"); return EXIT_SUCCESS; }Back to index
/* Hello World in C for Curses */ #include <curses.h> main() { initscr(); addstr("Hello World!\n"); refresh(); endwin(); return 0; }Back to index
/* Hello World for C with GEM */ #include <aes.h> main() { appl_init(); form_alert(1,"[0][Hello World!][Ok]"); appl_exit(); return 0; }Back to index
/* Hello World in C for Intution (Amiga GUI) */ #include <intuition/intuition.h> struct IntuitionBase *IntuitionBase = NULL; struct IntuiText hello_text = {-1,-1,JAM1,0,0,NULL,"Hello World!",NULL }; struct IntuiText ok_text = {-1,-1,JAM1,0,0,NULL,"Ok",NULL }; void main(void) { IntuitionBase = (struct IntuitionBase *) OpenLibrary("intuition.library", 0); AutoRequest(NULL, &hello_text, NULL, &ok_text, NULL, NULL, 100, 50); CloseLibrary(IntuitionBase); }Back to index
/* Hello World in C, K&R-style */ main() { puts("Hello World!"); return 0; }Back to index
/* Hello World in Objective-C. ** Since the standard implementation is identical to K&R C, ** a version that says hello to a set of people passed on ** the command line is shown here. */ #include <stdio.h> #include <objpak.h> int main(int argc,char **argv) { id set = [Set new]; argv++;while (--argc) [set add:[String str:*argv++]]; [set do:{ :each | printf("hello, %s!\n",[each str]); }]; return 0; }Back to index
/* Hello World for C with PresentationManager / OS/2 2.11 */ #define INCL_WIN #include <os2.h> int main( void ) { HMQ hmq; hmq = WinCreateMsgQueue( 0, 0 ); WinMessageBox( HWND_DESKTOP, HWND_DESKTOP, (PSZ)"Hello World!", (PSZ)"", 0, MB_OK ); WinDestroyMsgQueue( hmq ); return 0; }Back to index
// Hello World in Microsoft C# ("C-Sharp"). using System; class HelloWorld { public static int Main(String[] args) { Console.WriteLine("Hello, World!"); return 0; } }Back to index
/* Hello world in C for MS-Windows */ #include <windows.h> int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR CmdLine, int Show) { MessageBox(GetActiveWindow(), "Hello World!", "Hello Windows World", MB_OK); return 0; }Back to index
/* Hello World in C with X11 using Athena widgets */ #include <X11/Intrinsic.h> #include <X11/StringDefs.h> #include <X11/Xaw/Label.h> main(int argc,char **argv) { XtAppContext app_context; Widget toplevel,hello; toplevel = XtVaAppInitialize(&app_context,"XHello",NULL,0, &argc,argv,NULL,NULL); hello = XtVaCreateManagedWidget("Hello World!",labelWidgetClass, toplevel,(void*)0); XtRealizeWidget(toplevel); XtAppMainLoop(app_context); return 0; }Back to index
(* Hello World in CAML Light *) let hello = print_string "Hello World!"; ;;Back to index
* Hello World in Cobol ***************************** IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. MAIN SECTION. DISPLAY "Hello World!" STOP RUN. ****************************Back to index
* Hello World in dBase IV ? "Hello World!"Back to index
module: hello-world author: Homer copyright: (c) 1994 Homer version: 1.0 // Hello World in DYLAN define method main (#rest args) princ("Hello world!"); end; main();Back to index
indexing "Hello World in Eiffel" class HELLO creation run feature run is local io : BASIC_IO; do !!io; io.put_string("Hello World!"); io.put_newline; end; -- run end; -- class HELLOBack to index
(* Hello World in ELAN *) putline ("Hello World!");Back to index
%% Hello World in Erlang -module(hello). -export(hello/0). hello() -> io.format("Hello World!\n").Back to index
-- Hello World in Euphoria procedure Hello() print ("Hello World!") end procedureBack to index
1.01 COMMENT HELLO WORLD IN FOCAL 1.02 TYPE "HELLO WORLD", ! 1.03 QUITBack to index
: Hello World in Forth ." Hello World!" cr ;Back to index
C Hello World in Fortran PROGRAM HELLO WRITE (*,100) STOP 100 FORMAT (' Hello World! ' /) ENDBack to index
C Hello World in Fortran 77 PROGRAM HELLO PRINT*, 'Hello World!' ENDBack to index
PROGRAM HELLO c C Hello World in Fortran IV (supposedly for a TR440) c WRITE (6,'('' Hello World!'')') ENDBack to index
-- Hello World in Gofer -- Simple version helloWorld:: String helloWorld = "Hello World!\n" -- Hello World in Gofer -- Dialog version helloWorld :: Dialogue helloWorld resps = [AppendChan stdout "Hello world!"]Back to index
; Hello World in GynkoSoft ; Simple version 0.00 Protocol "Hello, World!" ; Hello World in GynkoSoft ; Dialog box output 0.00 Message "Hello, World!"Back to index
-- Hello World in Haskell module Hello where hello::String hello = "Hello World!"Back to index
Hello World for the HP 41C. No comment character exists. 01 LBL "HELLO" 02 "HELLO WORLD" 03 AVIEWBack to index
<< @ Hello World for the HP-48 @ << and >> are one char each "HELLO WORLD" >>Back to index
<HTML> <!-- Hello World in HTML --> <HEAD> <TITLE>Hello World!</TITLE> </HEAD> <BODY> Hello World! </BODY> </HTML>Back to index
Hello World for IBM EXEC (under VM/CMS) &CONTROL * &TYPE Hello World! * &EXIT 0Back to index
Hello World for IBM EXEC2 (under VM/CMS) &TRACE OFF * &TYPE Hello World! * &EXIT 0Back to index
# Hello World in ici (http://www.zeta.org.au/~atrn/ici/) printf("Hello World!\n");Back to index
# Hello world in Icon (http://www.cs.arizona.edu/icon/) procedure main() write("Hello world") endBack to index
# Hello World in Informix 4GL MAIN DISPLAY "Hello World" END MAINBack to index
// Hello World in InstallScript // (Scripting language of InstallShield, a Windows install generator) program MessageBox("Hello World!",INFORMATION); endprogramBack to index
HELLO WORLD IN INTERCAL NOT FORTRAN HELLO WORLDBack to index
// Hello World in Java class HelloWorld { static public void main( String args[] ) { System.out.println( "Hello World!" ); } }Back to index
// Hello World on a mobile Java device package helloworld; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloWorld extends MIDlet { public HelloWorld() { Form form = new Form("Hello World"); form.append("Hello world!"); Display.getDisplay(this).setCurrent(form); } protected void pauseApp() { } protected void startApp() throws javax.microedition.midlet.MIDletStateChangeException { } protected void destroyApp(boolean parm1) throws javax.microedition.midlet.MIDletStateChangeException { } }Back to index
<!-- Hello World for Java Server Pages --> <%@ page language='java' %> <%="Hello World!" %>Back to index
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; // // Hello World Java Servlet // public class HelloWorld extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("Hello World!"); out.println("</body></html>"); } }Back to index
<html> <body> <script language="JavaScript" type="text/javascript"> // Hello World in JavaScript document.write('Hello World'); </script> </body> </html>Back to index
//HERIB JOB ,'HERIBERT OTTEN',PRTY=12 //* Hello World for MVS //HALLO EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSUT2 DD SYSOUT=T //SYSUT1 DD * Hello World! /* //Back to index
Hello World in Limbo. Limbo is the programming language of the Inferno OS (from Lucent Bell Labs). implement Cmd; include "sys.m"; include "draw.m"; Cmd : module { init : fn (ctxt : ref Draw->Context, args : list of string); }; init(nil : ref Draw->Context, nil : list of string) { sys := load Sys Sys->PATH; sys->print("Hello World\n"); }Back to index
;;; Hello World in Common Lisp (defun helloworld () (print "Hello World!") )Back to index
; Hello World in Logo DRUCKEZEILE [Hello World!]Back to index
TITLE HELLO WORLD ; HELLO WORLD IN MACRO 10 FOR TOPS-10 ENTRY OUTPUT SEARCH UUOSYM LAB: ASCIZ /HELLO WORLD / OUTPUT: OUTSTR LAB ; OUTPUT MESSAGE MONRT. ; RETURN TO MONITOR END OUTPUTBack to index
(* Hello World in Modula-2 *) MODULE HelloWorld; FROM InOut IMPORT WriteString,WriteLn; BEGIN WriteString("Hello World!"); WriteLn; END HelloWorld.Back to index
@ECHO OFF REM Hello World for DOS batch ECHO Hello World!Back to index
Hello World in natural languages. Czech (1): Ahoj, svet! Bengali: Shagatam Prithivi! English: Hello World! French: Salut le Monde! German: Hallo Welt! Hindi: Shwagata Prithvi! Italian Ciao Mondo! Portugese: Ola mundo! Spanish (2): !Hola mundo! Swedish: Hejsan värld! Turkish: Merhaba Dünya! (1) Upside-down "^" on the "e" (2) First "!" upside-downBack to index
// Hello World in NewtonScript baseview := {viewBounds: {left: -3, top: 71, right: 138, bottom: 137}, viewFlags: 581, declareSelf: 'base, _proto: protoFloatNGo, debug: "baseview" }; textview := * child of baseview * {text: "Hello World!", viewBounds: {left: 33, top: 24, right: 113, bottom: 46}, viewFlags: 579, _proto: protoStaticText, debug: "textview" };Back to index
MODULE HelloWorld; (* Hello World in Oberon for the Oberon System *) IMPORT Oberon, Texts; VAR W: Texts.Writer; PROCEDURE Do*; BEGIN Texts.WriteString(W,"Hello World!"); Texts.WriteLn(W); Texts.Append(Oberon.Log,W.buf) END Do; BEGIN Texts.OpenWriter(W) END HelloWorld.Back to index
(* Hello World in Oberon for standard operating systems *) MODULE HelloWorld; IMPORT Out; BEGIN Out.String("Hello World!"); Out.Ln; END HelloWorld;Back to index
PROGRAM Hello -- Hello world in Occam #USE ioconv SEQ write.full.string(screen,"Hello World!")Back to index
REM Hello World for OPL (Psion Organizer 3a) REM More complex version with menues and dialog boxes PROC HELLO: LOCAL M% DO REM Display menu bar mINIT mCARD "Sprache","Deutsch",%d,"English",%e mCARD "Extras","Beenden",%x,"Info",%i M%=MENU REM process choosen function IF M%=%d REM Display german dialog box REM with an ENTER button to continue dBOX:(" ","Hallo Welt"," ","weiter",13) ELSEIF M%=%e REM Display english dialog box REM with an ENTER button to continue dBOX:(" ","Hello World"," ","continue",13) ELSEIF M%=%i REM Display copyright information ;-) dBOX:("Info","(C) Klaus Müller 0196","FrankfurtMain, Germany","",13) ENDIF UNTIL M%=%x ENDP PROC dBOX:(Z1$,Z2$,Z3$,Z4$,BUTTON%) dINIT Z1$ dTEXT ""," ",0 dTEXT "",Z2$",$102 dTEXT "",Z3$,$202 dBUTTONS Z4$,BUTTON% DIALOG ENDPBack to index
REM Hello World for OPL (Psion Organizer 3a) REM Simple version PROC HELLO: PRINT "Hello World!" GET ENDPBack to index
Hello World in OZ, shell version: Type the text {Browse 'Hello World!'} to a buffer in OZ mode and feed it for execution (e.g., by typing the key M-l or by using the OZ menu). A window titled Oz Browser will pop up showing the atom 'Hello World!'.Back to index
{Hello World in Pascal} program HelloWorld; begin WriteLn('Hello World!'); end.Back to index
{ Hello World in Borland Pascal 7 for MS-Windows} PROGRAM HelloWorld; USES WinCRT; BEGIN InitWinCRT; WriteLn('Hello World!'); ReadLn; DoneWinCRT; END.Back to index
# Hello world in perl print "Hello World!\n";Back to index
// Hello World in PHP <?php echo 'Hello World!'; ?>Back to index
// Hello world in Pike (pike.roxen.com) int main(){ write("Hello World!\n"); }Back to index
-- Hello World in Oracle PL/SQL set serveroutput on Declare txt varchar2(11); begin txt:='Hello World'; dbms_output.put_line(txt); end; /Back to index
/* Hello World in PL1 */ Hello: procedure options(main) put list('Hello World!'); put skip; end HelloBack to index
Hello World for standard pocket calculators (7-segment display). Type in and turn calculator upside down. 07734Back to index
% Hello World in Postscript %!PS /Palatino-Roman findfont 100 scalefont setfont 100 100 moveto (Hello World!) show showpageBack to index
' Hello World in Profan (http://www.profan.de/) cls print "Hello World!" waitkeyBack to index
% Hello World in Prolog hello :- display('Hello World!') , nl .Back to index
# Hello World in Python print "Hello World"Back to index
' Hello World in REALbasic (http://www.realsoftware.com/) msgBox "Hello World!"Back to index
Hello World in Rebol-view. rebol[] view layout[ text "Hello World!" ]Back to index
/* Hello World in Rexx */ SAY "Hello World!"Back to index
/* Hello World in Rexx, simple version (writes to standard output) */ say 'Hello World!' exitBack to index
/* Hallo World in Rexx, opens window */ call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' call SysLoadFuncs call RxMessageBox 'Hello World!', 'Hello World Window', 'OK', 'EXCLAMATION' exitBack to index
// Hello World in SAL proc main() MsgBox("Hello from SAL", "Hello, World!") endBack to index
-- Hello World in Sather class HELLO is main is #OUT + "Hello World!\n" end endBack to index
;;; Hello World in Scheme (define helloworld (lambda () (display "Hello World") (newline)))Back to index
(| "Hello World in Self" hello = (| | 'Hello World!' print) |)Back to index
Hello World in SenseTalk. on run put "Hello World!" end runBack to index
-- Hello World in Setl2 procedure Hello(); print "Hello World!"; end Hello;Back to index
The Infamous Hello World Program in Shakespeare. 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]Back to index
"Hello World in Smalltalk (simple version)" Transcript show: 'Hello World!'.Back to index
"Hello World in Smalltalk (in an own window)" "(to be entered in a special browser)" VisualComponent subclass: #HelloWorldView instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'test' displayOn: aGraphicsContext 'Hello World!' asComposedText displayOn: aGraphicsContext. open |window| window := ScheduledWindow new. window label: 'Hello World Demo:'. window component: self new. window open.Back to index
(* Hello World in SML *) fun hello() = output(std_out, "Hello World!");Back to index
* Hello World in Snobol OUTPUT = "Hello World!"Back to index
HELLO: PROCEDURE OPTIONS(MAIN); * /* Hello World in SPL4 (Siemens) */ * DCL PRINTC ENTRY; * CALL PRINTC('Hello World!', 12); RETURN; * END HELLO;Back to index
## Hello World for ST-Guide @node "Hello World!" Hello World! @endnodeBack to index
#!/usr/local/bin/tclsh # Hello World in Tcl puts "Hello World!"Back to index
% Hello World in plain \TeX \immediate\write16{Hello World!} \endBack to index
\input texinfo @c Hello World for Texinfo @setfilename hello @settitle Hello World @node Top, Hello, (dir), (dir) @menu * Hello:: Hello World @end menu @node Hello, , Top, Top Hello World! @contents @byeBack to index
Hello World for the TI-59 with PC-100C thermo printer. No comment character exists. The TI-59/PC-100C can print up to 20 characters per line (upper case only). They are coded as 2-digit decimal numbers (see manual for details) in up to four print registers (of five characters each) and then printed. Before entering the program, press LRN to switch into learn mode. After entering the program, cancel learn mode with LRN, turn on the printer, and run the program with A. A pleasant sound, and what a font! Real TRUE-TYPE! The output looks like this: +--------------------+ | HALLO WELT!| | | +--------------------+ TI59 Code Comment LBL A Start of program: label A OP 00 Clear the four print registers 23 "H" OP 02 Write into print register 2 13 "A" 27 "L" 27 "L" 32 "O" 00 " " OP 03 Write into print register 3 43 "W" 17 "E" 27 "L" 37 "T" 73 "!" OP 04 Write into print register 4 OP 05 Start printing ADV Line feed (optional) R/S End program Remark: German output only, as submitted by the author. Sorry I don't know the codes to translate the output into English. -wrBack to index
Hello World for TI 8x/9x basic (tested on a TI-83) :ClrHome :Disp "HELLO WORLD"Back to index
#!/usr/local/bin/wish -f # Hello World in Tk label .l -text "Hello World!" pack .lBack to index
PROC 0 /* Hello World in TSO CLIST */ write Hello World!Back to index
Hello World as a Turing machine. State Read | Write Step Next state ---------------|--------------------------------- 1 empty | H > 2 2 empty | e > 3 3 empty | l > 4 4 empty | l > 5 5 empty | o > 6 6 empty | blank > 7 7 empty | W > 8 8 empty | o > 9 9 empty | r > 10 10 empty | l > 11 11 empty | d > 12 12 empty | ! > STOPBack to index
#!/bin/sh # Hello World for the Unix shell echo "Hello World!"Back to index
+ Hello World in Vatical LITURGY: PRAY "Hello World!" AMEN.Back to index
Hello World in VAX Macro. .title helloworld .ident /hello world/ ; .library /sys$library:lib/ $libdef $lib$routinesdef .psect $data,wrt,noshr,noexe,long hello: .ascid /Hello World!/ .psect $code,nowrt,shr,exe,long .entry helloworld,^m<r9,r10,r11> pushaq hello ; output the message calls #1,g^lib$put_output ; ret ; GTFOH .end helloworld ;Back to index
REM Hello World in Visual Basic for Windows VERSION 2.00 Begin Form Form1 Caption = "Form1" ClientHeight = 6096 ClientLeft = 936 ClientTop = 1572 ClientWidth = 6468 Height = 6540 Left = 876 LinkTopic = "Form1" ScaleHeight = 6096 ScaleWidth = 6468 Top = 1188 Width = 6588 Begin Label Label1 Caption = "Hello World!" Height = 372 Left = 2760 TabIndex = 0 Top = 2880 Width = 972 End End Option ExplicitBack to index
$ ! Hello World for VMS-CLI $ WRITE SYS$OUTPUT "Hello World!"Back to index
<?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- Hello World in XHTML --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Hello World! </title> </head> <body> <p> Hello World! </p> </body> </html>Back to index
Programs were contributed by:
Wolfram Roesler: C, Modula-2, Basic, Unix shell, Tcl, Tk, GEM, Curses, Texinfo, InstallScript, C++ (MFC), C++ (ISO), C#, English, German
Reinhard Hamann @ S2: Forth, Prolog, Lisp, 68000 Assembler (Atari)
Malte Schiphorst @ HH2: Pascal
Stefan Radermacher @ K: TeX
Marcus Schmidke @ K2: Occam, MSDOS batch, Intel Assembler, 6502 Assembler
Ralf Lenz @ F: Fortran IV, VMS
Marc Van-Woerkom @ AC: C++
Thomas Menschel @ B: 68008 Assembler
Heribert Otten @ K2: Cobol, PL/1, JCL
Thomas Piske @ HH: BS2000 batch
Thomas Preymesser @ N: Ada, pocket calculator
Adrian Nye & Tim O'Reilly: X11-Athena
Udo Halfmann @ K2: ELAN
Pedro Martins @ AZ: Portugese
Stefan Llabres @ OG: Postscript
Volker Wurst @ S3: Smalltalk
Dirk Theisen @ SU: Oberon (standard OS)
Georg Bauer @ MS3: Rexx (simple version), Erlang, SML, Snobol, Setl2, CAML light, Euphoria
Michael Glaesner @ F: Perl, awk
Christian Rosner @ WI: Eiffel
Markus Omers @ DU2: Presentation Manager
Thomas Dorner @ F: SPL
Jochen Kunz @ SB: Rexx (window version), HP-48
Sascha Bendinger @ LU: Dylan
Steffen Pohlen @ AC3: Visual Basic, Gofer (dialog)
Andreas Dierks @ OL2: Algol-60, Algol-68, Fortran, Fortran-77, dBase IV, Logo
Klaus Mueller @ F: TSO CLIST, OPL
Jens Kilian @ BB: Intercal, Self
Martin Uebing @ DO: Intuition
Andreas Maeder @ WUE: Borland Pascal 7
Stefan Brozinski @ HB2: Windows, HP-41C
Jens Schaefers @ DO: Beta
Wolfgang Houben <castor@newswire.gun.de>: PDP-11 Assembler
Pascal Costanza @ K2: Oberon (Oberon OS)
Martin Oefelein @ M: Sather, GynkoSoft
Ralf Unland <Ralf.Unland@LFS-Vechta.nsn.ni.schule.de>: TI-59
Stefan Rupp @ AC2: Java
Werner Huber @ A-L: Informix 4GL
Lutz Heitmann @ KI: Turing machine
Federico Hernandez-Püschel @ OF2: HTML
Thomas Lattner @ BB2: OZ
Gunter Baumann @ S: NewtonScript
Torsten Landschoff @ IZ: ST-Guide
Florian Erhard @ M2: Gofer (simple)
Niels 'Frolic' Froehling <Seal@CHATLINE.MCNET.DE>: 68000 Assembler (Amiga)
Michael Sievert @ UN: Rexx
Andy Newman <andy@research.canon.com.au>: ici
Sammy Mitchell <sammy.mitchell@semware.com>: SAL
Ian Trudel <ian.trudel@tr.cgocable.ca>: Icon, Objective C
Chris Locke <chris@cjl1.demon.co.uk>: Limbo
Dmitri Katchalov <dmitrik@my-deja.com>: BrainF***
Bora Bali <indefatigable@email.com>: Assembler IBM 370, IBM Exec, IBM Exec2, ASP (VB-Script and JavaScript), Java Servlet, Turkish, Italian
Neil L. Burman <nburman@yahoo.com>: VAX Macro
Thor Kottelin <thor@anta.net>: XHTML
Roel Adriaans <roel4@chello.nl>: PHP
Ad Boerma <a.boerma@chello.nl>: TI-8x/9x, PHP
hugh@raynerdesign.com.au: Haskell
Monwar <monwar1982@yahoo.com>: Bengali, Hindi
Jeff Hultquist <jhultquist@centricsoftware.com>: Scheme
Wolfgang Teschner <Wolfgang.Teschner@impress.com>: Python
Chris L. <clackerd@polymail.cpunix.calpoly.edu>: AppleScript
Joel Dimbernat <Joel.dimbernat@wanadoo.fr>: Rebol-view
Todd Nathan <big_boy_toddy@yahoo.com>: SenseTalk
Heiko Berges <hb-hallowelt@bsls.de>: BCPL, ABAP/4, Focal, B, MACRO10
Carlo Keil <carlo.keil@web.de>: Profan
Bruno Bord <b.bord@arobasque.fr>: French
Andreas Meinl <andreas.meinl@gmx.de>: C++ (Qt)
Mikael Brandström <mikael@brandstrom.org>: Pike
Mariano Corsunsky <zappa@fibertel.com.ar>: Spanish
Horváth Zsolt <horvath-zsolt@dbrt.hu>: PL/SQL
Thomas Fromm <tf@tfromm.com>: Java Server Pages
Josha Munnik <josha@ultraforce.com>: Shakespeare, Java-Mobile
Thierry Loiseau <thierry.loiseau@free.fr>: JavaScript
Fredrik Sandebert <sandebert@untitled.com>: REALbasic, Swedish
NYYRIKKI <perkele@mail2Hell.com>: Z80 Assembler for consoles