שיחה:תוכנית Hello world/אוסף תוכניות
להלן דוגמאות לתוכניות Hello world במספר שפות:
ממשק משתמש טקסטואלי (TUI) (כלומר במסוף, מונחה שורת פקודה)
עריכהWRITE "Hello World"
with Ada.Text_Io; use Ada.Text_Io; procedure Hello is begin Put_Line ("Hello, world!"); end Hello;
PROC main() WriteF('Hello, World!') ENDPROC
'Hello World'
ראה את חלק הדוגמה במאמר על PDP-8.
צירוף מיקרומעבד ומערכת הפעלה המוצלח הראשון: שפת הסף של Intel 8080/Zilog Z80, CP/M, RMAC
עריכהbdos equ 0005H ; BDOS entry point start: mvi c,9 ; BDOS function: output string lxi d,msg$ ; address of msg call bdos ret ; return to CCP
msg$: db 'Hello, world!$' end start
MSG: .ASCIIZ "Hello, world!" LDX #0 LDA MSG,X ; load initial char @LP: JSR $FFD2 ; chrout INX LDA MSG,X BNE @LP RTS
מכונת אוגרים/מפתח מיקרו-מקודדת : Data General Nova, RDOS
עריכהראה את הדוגמה במאמר על Nova.
מכונת אוגרים מורחבת: של אינטל x86, MS-DOS, TASM
עריכהMODEL SMALL IDEAL STACK 100H
DATASEG MSG DB 'Hello, world!$'
CODESEG MOV AX, @data MOV DS, AX MOV DX, OFFSET MSG MOV AH, 09H ; DOS: output ASCII$ string INT 21H MOV AX, 4C00H INT 21H END
TERM EQU 19 console device no. (19 = typewriter) ORIG 1000 start address START OUT MSG(TERM) output data at address MSG HLT halt execution MSG ALF "HELLO" ALF " WORL" ALF "D " END START end of program
מכונות רב תכליתיות עם אוגרים - CISC: DEC PDP-11, RT-11, MACRO-11
עריכה.MCALL .REGDEF,.TTYOUT,.EXIT .REGDEF
HELLO: MOV #MSG,R1 MOVB (R1),R0 LOOP: .TTYOUT MOVB +(R1),R0 BNE LOOP .EXIT
MSG: .ASCIZ /HELLO, WORLD!/ .END HELLO
.title hello
.psect data, wrt, noexe
chan: .blkw 1 iosb: .blkq 1 term: .ascid "SYS$OUTPUT" msg: .ascii "Hello, world!" len = . - msg
.psect code, nowrt, exe
.entry hello, ^m<>
; Establish a channel for terminal I/O $assign_s devnam=term, - chan=chan blbc r0, end
; Queue the I/O request $qiow_s chan=chan, - func=#io$_writevblk, - iosb=iosb, - p1=msg, - p2=#len
; Check the status and the IOSB status blbc r0, end movzwl iosb, r0 ; Return to operating system end: ret
.end hello
.program ADR R0,message SWI "OS_Write0" SWI "OS_Exit" .message DCS "Hello, world!" DCB 0 ALIGN
BEGIN { print "Hello, world!" }
10 PRINT "Hello, world!" 20 END
(על מחשבונים גרפיים של TI-89/TI-92.)
:HelloWorld() :Prgm :Disp "Hello, world!" :EndPrgm
sub main print "Hello, World" end sub
BASIC מובנה
עריכהprint "Hello, world!" end
GET "LIBHDR"
LET START () BE $( WRITES ("Hello, world!*N") $)
%TITLE 'HELLO_WORLD' MODULE HELLO_WORLD (IDENT='V1.0', MAIN=HELLO_WORLD, ADDRESSING_MODE (EXTERNAL=GENERAL)) = BEGIN
LIBRARY 'SYS$LIBRARY:STARLET';
EXTERNAL ROUTINE LIB$PUT_OUTPUT;
GLOBAL ROUTINE HELLO_WORLD = BEGIN
LIB$PUT_OUTPUT(%ASCID %STRING('Hello World!')) END;
END ELUDOM
#include <stdio.h>
int main() {
printf("Hello, world!\n");
return 0;
}
using System;
class HelloWorldApp {
public static void Main() {
Console.WriteLine("Hello, world!");
}
}
#include <iostream>
int main() { std::cout << "Hello, world!" << std::endl; }
module hello
Start :: String Start = "Hello, world"
PROC 0 WRITE Hello, World!
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION. DISPLAY "Hello, world!". STOP RUN.
(format t "Hello world!~%")
int main() { printf("Hello, world!\n"); return 0; }
$ write sys$output "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").
constant SCREEN = 1 puts(SCREEN, "Hello, world!")
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('HelloWorld!'); 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;
." Hello, world!" CR
PROGRAM HELLO WRITE(*,10) 10 FORMAT('Hello, world!') STOP END
println["Hello, world!"]
ראו גם את החלק הדן בממשק משתמש גרפי.
PUBLIC SUB Main() Print "Hello, world!" END
באירוע ה"שרטט" של אוביקט מסוים:
draw_text(x,y,"Hello World");
module HelloWorld (main) where
main = putStr "Hello World\n"
(מחשבוני כף יד אלפאנומריים של Hewlett-Packard המבוססים על רישום פולני הפוך (RPN))
01 LBLTHELLO 02 THELLO, WORLD 03 PROMPT
ON ENTER { "Hello, " "World!" & SAY }
"Hello world!" print
או
write("Hello world!\n")
ראו גם את החלק הדן בממשק משתמש גרפי.
public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } }
print [hello world!]
או
pr [Hello World!]
בmswlogo בלבד:
messagebox [Hi] [Hello World]
print("Hello, world!")
MODULE Hello; FROM Terminal2 IMPORT WriteLn; WriteString;
BEGIN WriteString("Hello, world!"); WriteLn; END Hello;
(עם המפרש התקני command.com)
@echo Hello, world!
: main me @ "Hello, world!" notify ;
let _ = print_endline "Hello world!";;
ראו גם את החלק הדן בממשק משתמש גרפי.
PROC hello: PRINT "Hello, World" ENDP
(object-class request ^action)
(startup (strategy MEA) (make request ^action hello) )
(rule hello (request ^action hello) --> (write |Hello World!| (crlf)) )
program Hello; begin writeln('Hello, world!'); end.
print "Hello, world!\n";
<?php echo "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;
declare hello varchar2(20); begin hello := 'Hello World!'; dbms_output.put_line(hello); end; /
'Hello world' =>
#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 } }
write('Hello world'),nl.
print "Hello, world!"
REXX, NetRexx, and Object REXX
עריכהsay "Hello, world!"
או:
say 'Hello, world!'
ראו גם את החלק הדן בממשק משתמש גרפי.
(On Hewlett-Packard HP-28, HP-48 and HP-49 series graphing calculators.)
<< CLLCD "Hello, World!" 1 DISP 0 WAIT DROP >>
puts "Hello, world!"
class HELLO_WORLD is main is #OUT+"Hello World\n"; end; end;
(display "Hello, world!") (newline)
(הערה: דורש לפחות שורה אחת של קלט)
sed -ne '1s/.*/Hello, world!/p'
$ include "seed7_05.s7i"; const proc: main is func begin writeln("Hello, world!"); end func;
'Hello, World!' print.
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;
או (למשל דיאלקט Oracle)
select 'Hello, world' from dual;
או (למשל דיאלקט MySQL)
select 'Hello, world';
או, ביתר פשטות
print 'Hello, World.'
או (לדיאלקט KB-SQL)
select Null from DATA_DICTIONARY.SQL_QUERY FOOTER or HEADER or DETAIL or FINAL event write "Hello, World!"
RACINE: HELLO_WORLD.
NOTIONS: HELLO_WORLD : ecrire("Hello, world!").
#OUTPUT Hello, world!
puts "Hello, world!"
put "Hello, world!"
Declare @Output varchar(16) Set @Output='Hello, world!' Select @Output
או בואריאציות שונות:
Select 'Hello, world!' Print 'Hello, world!'
echo 'Hello, world!'
הדפס "Hello World!"
ממשק משתמש גרפי (GUI)
עריכהdisplay dialog "Hello, world!"
ראה את החלק הדן בממשק משתמש טקסטואלי.
PUBLIC SUB Main() Message.Info("Hello, world!") END
ערכת הכלים של GTK (בC++)
עריכה#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; }
include gtk2/wrapper.e
Info(NULL,"Hello","Hello World!")
See also TUI section.
import javax.swing.JOptionPane;
public class Hello { public static void main(String[] args) { JOptionPane.showMessageDialog(null, "Hello, world!"); System.exit(0); } }
- יישומון Java עובד בצירוף עם קובצי HTML.
<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 (או: ECMAScript) וJScript
עריכה- JavaScript היא שפת תכנות תסריטים הנמצאת בשימוש בקובצי HTML. הקוד הבא יכול להיות משולב בכל קובץ כזה.
<script type="text/javascript"><!-- function helloWorld() { alert("Hello, world!"); } //--></script>
<a href="#" onclick="helloWorld()">Hello World Example</a>
- שיטה קלה יותר המשתמשת ברמיזות של JavaScript, על ידי קריאה לפונקציית alert. העתק והדבק את השורה הבאה בתוך תגי ה <BODY> .... </BODY>.
<a href="#" onclick="alert('Hello, world!')">Hello World Example</a>
- שיטה קלה עוד יותר הכוללת שימוש בתמיכה של הדפדפנים הנפוצים בפרוטוקול 'javascript' מדומה להרצת קוד שלו. הכנס את השורה הבאה ככתובת של אתר אינטרנט בדפדפן.
javascript:alert('Hello, world!')
ראה את החלק הדן בממשק משתמש טקסטואלי.
(על פסיון סדרה 3 ועזרים דיגיטליים אישיים (PDA) אחרים.)
PROC guihello: ALERT("Hello, world!","","Exit") ENDP
#include <qapplication.h> #include <qpushbutton.h> #include <qwidget.h> #include <iostream>
class HelloWorld : public QWidget { Q_OBJECT
public: HelloWorld(); virtual ~HelloWorld(); public slots: void handleButtonClicked(); QPushButton *mPushButton; };
HelloWorld::HelloWorld() : QWidget(), mPushButton(new QPushButton("Hello, World!", this)) { connect(mPushButton, SIGNAL(clicked()), this, SLOT(handleButtonClicked())); }
HelloWorld::~HelloWorld() {}
void HelloWorld::handleButtonClicked() { std::cout << "Hello, World!" << std::endl; }
int main(int argc, char *argv[]) { QApplication app(argc, argv); HelloWorld helloWorld; app.setMainWidget(&helloWorld); helloWorld.show(); return app.exec(); }
ראה את החלק הדן בממשק משתמש טקסטואלי.
Visual Basic כולל VBA
עריכהMsgBox "Hello world!"
Windows API (ב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;
}
או בדרך קלה הרבה יותר:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Hello World", "", MB_OK);
return 0;
}
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box align="center"> <label value="Hello, world!" /> </box> </window>
פורמטי מסמכים
עריכה- סדרת התווים הבאה, המובעת ברישום הקסה-דצימלי (עם תווי carriage return וnewline בסוף הסדרה)
48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21 0D 0A
(משתמש במערך התווים UTF-8.)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Hello, world!</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>Hello, world!</p> </body> </html>
(משתמש במערך התווים UTF-8.)
- יש לשים לב שגם מסמך זה חייב להשלח עם הגדרות תחילת מסמך (HTTP Header), רצוי כ"application/xhtml+xml", אך הוא יכול להשלח גם כ"application/xml" או "text/xml"; אולם אסור לשלוח אותו כ"text/html". למידע נוסף, ראה XHTML Media Types.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Hello, world!</title> </head> <body> <p>Hello, world!</p> </body> </html>
/Courier findfont 24 scalefont setfont 100 100 moveto (Hello world!) show showpage
- בהרצת האינטרפרטר, יש לכתוב את השורה הבאה להצגתה
(Hello world!) stack
{\rtf1\ansi\deff0 {\fonttbl {\f0 Courier New;}} \f0\fs20 Hello, world! }
Hello world \bye