שיחה:תוכנית 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;

(עם המפרש התקני 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!"
  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
   #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
   #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();
   }

ראה את החלק הדן בממשק משתמש טקסטואלי.

(On Hewlett-Packard HP-48G and HP-49 series calculators.)


   << "Hello, World!" MSGBOX >>
   MsgBox "Hello world!"
    #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>

(משתמש במערך התווים 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
חזרה לדף "תוכנית Hello world/אוסף תוכניות".