לדלג לתוכן

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

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 היא שפת תכנות תסריטים הנמצאת בשימוש בקובצי 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

(משתמש במערך התווים 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