שיחה:תוכנית 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'
ארכיטקטורות בעלות אוגרים בלבד: שפת סף של DEC PDP-8, PAL-III
[עריכת קוד מקור]ראה את חלק הדוגמה במאמר על 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
מכונת אוגרים ומפתח אוגרים: שפת סף של MOS 6502, CBM KERNAL, ca65
[עריכת קוד מקור]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
מכונות רב תכליתיות בדויות: MIX, MIXAL
[עריכת קוד מקור]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
CISC על מערכות הפעלה עם עיבוד מרובב: DEC VAX, VMS, MACRO-32
[עריכת קוד מקור].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
מעבד RISC: שפת סף מובנת של ARM, RISC OS, BBC BASIC
[עריכת קוד מקור].program ADR R0,message SWI "OS_Write0" SWI "OS_Exit" .message DCS "Hello, world!" DCB 0 ALIGN
BEGIN { print "Hello, world!" }
MS BASIC (מסורתי, לא מובנה)
[עריכת קוד מקור]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; }
אצוות DCL
[עריכת קוד מקור]$ 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;
אצוות MS-DOS
[עריכת קוד מקור](עם המפרש התקני 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; }
GTK 2.x (בEuphoria)
[עריכת קוד מקור]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
Qt (בC++)
[עריכת קוד מקור]#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
HTML 4.01 Strict
[עריכת קוד מקור](משתמש במערך התווים 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>
XHTML 1.1
[עריכת קוד מקור](משתמש במערך התווים 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