各种编程语言的Hello world程序

来源:互联网 发布:spring 主从数据库 编辑:程序博客网 时间:2024/04/23 22:16

我们刚开始接触计算机语言大多从Hello world 开始,下面演示各种语言的Hello world program:(把"Hello world"换成"i love you"其实挺不错)

AKA 控制台

  • ABC

WHILE (1=1) :

 WRITE "Hello World " 
  • Ada

    with Ada.Text_Io; use Ada.Text_Io;
    procedure Hello is
    begin
       Put_Line ("Hello, world!");
    end Hello;

  • AmigaE

    PROC main()
       WriteF('Hello, World!')
    ENDPROC

  • APL

    'Hello World'

  • Assembly language

Accumulator-only architecture: DEC PDP-8, PAL-III assembler
See the Example section of the PDP-8 article.


  • Accumulator + index register machine: MOS 6502, CBM, ca65 asm

    MSG:   .ASCIIZ "Hello, world!"
            LDX    #0
            LDA    MSG,X    ; load initial char
    @LP:    JSR    $FFD2    ; CHROUT CBM KERNAL
            INX
            LDA    MSG,X
            BNE    @LP
            RTS
Accumulator/Index microcoded machine: Data General Nova, RDOS
See the example section of the Nova article.
Expanded accumulator machine: Intel 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

  • General-purpose-register 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: VAX, VMS, MACRO32
         .title hello
 term_name:      .ascid /SYS$INPUT/
 term_chan:      .blkw 1
 out_iosb:       .blkq 1
 msg:    .asciz  /Hello, world!/
 
         .entry start,0
 
         ; establish a channel for terminal I/O
         $assign_s devnam=term_name,-
                 chan=term_chan
         blbc r0,error
 
         ; queue the I/O request
         $qio_s chan=term_chan,-
                 func=#io$_writevblk,-
                 iosb=out_iosb,-
                 p1=msg,-
                 p2=#13
         blbc r0,error
 
         $exit_s ; normal exit
 
 error:  halt ; error condition

        .end start

  • AWK

    BEGIN { print "Hello, world!" }

  • BASIC
  • MS BASIC (traditional, unstructured)
        10 PRINT "Hello, world!"
        20 END
  • TI-BASIC
        isp "Hello, world!"
  • Structured BASIC
        print "Hello, world!"
  • BCPL
        GET "LIBHDR"

    LET START () BE
    $(
        WRITES ("Hello, world!*N")
    $)


  • C

    #i nclude

    int main(void) {
        printf("Hello, world!/n");
        return 0;
    }

  • C++

    #i nclude
    using namespace std;

    int main() {
        cout << "Hello, world!" << endl;
        return 0;
    }

  • C#

    class HelloWorldApp {
     public static void Main() {
        System.Console.WriteLine("Hello, world!");
     }
    }

  • Clean

    module hello

    Start :: String
    Start = "Hello, world"

  • CLIST

    PROC 0
    WRITE Hello, World!

  • COBOL

    IDENTIFICATION DIVISION.
    PROGRAM-ID.     HELLO-WORLD.

    ENVIRONMENT DIVISION.

    DATA DIVISION.

    PROCEDURE DIVISION.
    DISPLAY "Hello, world!".
    STOP RUN.

  • Common Lisp

    (format t "Hello world!~%")

  • Eiffel

    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

  • Erlang

        -module(hello).
        -export([hello_world/0]).

        hello_world() -> io:fwrite("Hello, world!/n").

  • Forth

    ." Hello, world!" CR

  • Fortran (偶大学学的课程)

       PROGRAM HELLO
       WRITE(*,10)
    10 FORMAT('Hello, world!')
       STOP
       END

  • Haskell

    module HelloWorld (main) where

    main = putStr "Hello World/n"


  • Iptscrae

    ON ENTER {
        "Hello, " "World!" & SAY
    }

  • Java

    public class Hello {
        public static void main(String[] args) {
            System.out.println("Hello, world!");
        }
    }

  • Logo

    print [hello  world!]

  • Lua

    print "Hello, world!"

  • MIXAL

     TERM    EQU    19          the MIX console device number
             ORIG   1000        start address
     START   OUT    MSG(TERM)   output data at address MSG
             HLT                halt execution
     MSG     ALF    "MIXAL"
             ALF    " HELL"
             ALF    "O WOR"
             ALF    "LD   "
             END    START       end of the program

  • MSDOS batch

    @echo off
    echo Hello, world!

  • OCaml
        let _ =
           print_endline "Hello world!";;
  • OPL
        PROC hello:
          PRINT "Hello, World"
        ENDP
  • Pascal
        program Hello;
        begin
            writeln('Hello, world!');
        end.
  • Perl

    print "Hello, world!/n";

  • PHP

            print("Hello, world!");
    ?>

  • Pike
        #!/usr/local/bin/pike
        int main() {
            write("Hello, world!/n");
            return 0;
        }
  • PL/I

    Test: procedure options(main);
       declare My_String char(20) varying initialize('Hello, world!');
       put skip list(My_String);
    end Test;

  • Python

    print "Hello, world!"

  • REXX, also NetRexx and Object REXX

    say "Hello, world!"

  • Ruby

    print "Hello, world!/n"

  • Sather

    class HELLO_WORLD is
      main is
       #OUT+"Hello World/n";
      end;
    end;

  • Scheme

    (display "Hello, world!")
    (newline)

  • sed (requires at least one line of input)

    sed -ne '1s/.*/Hello, world!/p'

  • Self

    'Hello, World!' uppercase print.


  • Smalltalk

    Transcript show: 'Hello, world!'

  • SML

    print "Hello, world!/n";

  • SNOBOL

        OUTPUT = "Hello, world!"
    END

  • SQL

    create table MESSAGE (TEXT char(15));
    insert into MESSAGE (TEXT) values ('Hello, world!');
    select TEXT from MESSAGE;
    drop table MESSAGE;
Or, more simply


    print 'Hello, World.'

  • StarOffice Basic

    sub main
    print "Hello, World"
    end sub

  • Tcl

    puts "Hello, world!"

 

  • Turing

    put "Hello, world!"

  • UNIX-style shell

    echo 'Hello, world!'

  • Romanian pseudocode (UBB Cluj-Napoca)

    Algoritmul Salut este:
        fie s:="Hello, world";
        tipareste s;
    sf-Salut

  • 传统图形界面应用开发工具

  • C++ bindings for GTK graphics toolkit

    #i nclude
    #i nclude
    #i nclude
    #i nclude
    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:lot(*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;
    }

  • Java

    import java.awt.*;
    import java.awt.event.*;

    public class HelloFrame extends Frame {
      HelloFrame(String title) {
        super(title);
      }
      public void paint(Graphics g) {
        super.paint;
        java.awt.Insets ins = this.getInsets();
        g.drawString("Hello, world!", ins.left + 25, ins.top + 25);
      }
      public static void main(String args [])
      {
        HelloFrame fr = new HelloFrame("Hello");

        fr.addWindowListener(
          new WindowAdapter() {
            public void windowClosing(WindowEvent e)
            {
              System.exit( 0 );
            }
          }
        );
        fr.setResizable(true);
        fr.setSize(500, 100);
        fr.setVisible(true);
      }
    }


  • Qt toolkit (in C++)

    #i nclude
    #i nclude
    #i nclude
    #i nclude

    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

    MsgBox "Hello, world!"

  • Windows API (in C)

    #i nclude

    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;
    }

 

基于web图形用户界面


  • Java applet

Java applets work in conjunction with HTML files.

   
   
   
   
   

    HelloWorld Program says:


   
???

   
   

    import java.applet.*;
    import java.awt.*;

    public class HelloWorld extends Applet {
      public void paint(Graphics g) {
        g.drawString("Hello, world!", 100, 50);
      }
    }

  • JavaScript, aka ECMAScript

JavaScript is a scripting language used in HTML files. To demo this program Cut and Paste the following code into any HTML file.

      

           onclick="javascript:helloWorld();">Hello World Example

An easier method uses JavaScript implicitly, calling the reserved alert function. Cut and paste the following line inside the .... HTML tags.

     Hello World Example

An even easier method involves using popular browsers' support for the virtual 'javascript' protocol to execute JavaScript code. Enter the following as an Internet address (usually by pasting into the address box):

     javascript:alert('Hello, world!')

  • XUL

    http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   
   

  • 文档格式
  • ASCII
    The following sequence of characters, expressed in hexadecimal notation (with carriage return and newline characters at end of sequence):

     48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21 0D 0A

  • HTML

   
   
   
   
   
    Hello, world!
   
   

  • PostScript


    /font /Courier findfont 24 scalefont
    font setfont
    100 100 moveto
    (Hello world!) show
    showpage

  • TeX

    /font/HW=cmr10 scaled 3000
    /leftline{/HW Hello world}
    /bye

MSI

IL0001 ldstr "Hello World!"
IL0002 call System::Console::WriteLine(String)
IL0003 ret

  • 文档格式
  • ASCII
    The following sequence of characters, expressed in hexadecimal notation (with carriage return and newline characters at end of sequence):

     48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21 0D 0A

  • HTML

   
   
   
   
   
    Hello, world!
   
   

  • PostScript


    /font /Courier findfont 24 scalefont
    font setfont
    100 100 moveto
    (Hello world!) show
    showpage

  • TeX

    /font/HW=cmr10 scaled 3000
    /leftline{/HW Hello world}
    /bye

MSI

IL0001 ldstr "Hello World!"
IL0002 call System::Console::WriteLine(String)
IL0003 ret

原创粉丝点击