来源于:维基百科
“Hello, World ”程序指的是只在计算机 屏幕上输出“Hello, World!”(意为“世界,你好!”)这行字符串的计算机程序 。一般来说,这是每一种计算机编程语言 中最基本、最简单的程序,亦通常是初学者所编写的第一个程序。它还可以用来确定该语言的编译器 、程序开发环境 ,以及运行环境 是否已经安装妥当。
将输出字符串“Hello World”作为第一个示范程序,现在已经成为编程语言学习的传统。该程序因Brian Kernighan和丹尼斯·里奇 (Dennis M. Ritchie)所著的计算机程序设计教程《C程序设计语言 》(The C Programming Language )中使用而广泛流传;但这本书并不是“Hello World”的滥觞,虽然这是一个普遍存在的错误认知。
“Hello World”示例程序最早出现于1972年,由贝尔实验室 成 员Brian Kernighan撰写的内部技术文件《Introduction to the Language B》之中。不久同作者于1974年所撰写的《Programming in C: A Tutorial》,也延用这个示例;而以本文件扩编改写的《C语言程序设计》也保留了这个示范程序。
起初,"hello, world"程序的标准打印内容必须满足“全小写,无惊叹号,逗点后需空一格”。不过沿用至今,完全恪守传统的反而罕见。
以下是用不同语言写成的Hello World程序的列表:
ActionScript
trace ( "Hello, world!" ) ;
Ada
with TEXT_IO;
procedure HELLO is
begin
TEXT_IO.PUT_LINE ( "Hello, world!" ) ;
end HELLO;
汇编语言
x86 CPU,GNU/Linux ,NASM
section .data
msg db 'Hello, world!' , 0xA
len equ $- msg
section . text
global _start
_start:
mov edx , len
mov ecx , msg
mov ebx , 1
mov eax , 4
int 0x80
mov ebx , 0
mov eax , 1
int 0x80
x86 AT&T、Gas
.data
msg : .string "Hello, world!/n"
len = . - msg
.text
.global _start
_start:
movl $len, %edx
movl $msg, %ecx
movl $1 , %ebx
movl $4 , %eax
int $0x80
movl $0 , %ebx
movl $1 , %eax
int $0x80
x86 CPU 、Windows 、MASM32
. 386
.model flat , stdcall
option casemap : none
;==========================================================
include windows. inc
include user32. inc
includelib user32. lib
include kernel32. inc
includelib kernel32. lib
;==========================================================
.data
szCaption db "A MessageBox!" , 0
szText db "Hello, world!" , 0
;==========================================================
.code
start:
invoke MessageBox, NULL, addr szText, addr szCaption, MB_OK
invoke ExitProcess, NULL
;==========================================================
end start
ASP
<% Response .Write ( "Hello, world!" ) %>
- 或者简单地写成:
<% = "Hello, world!" %>
AutoIt
MsgBox ( 1 , '' , 'Hello, world!' )
AWK
BEGIN { print "Hello, world!" }
Bash (or sh)
echo 'Hello, world!'
或者:
printf 'Hello, world!/n'
BASIC
传统版 BASIC(例如 GWBASIC ):
10 PRINT "Hello, world!"
20 END
或在提示符输入:
? "Hello, world!"
现代版 BASIC(例如 Quick BASIC):
PRINT "Hello, world!"
以下的语句,在 Quick BASIC 中同样有效:
? "Hello,world!"
BCPL
GET "LIBHDR"
LET START () BE
$(
WRITES ("Hello, world!*N")
$)
Brainfuck
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<
+++++++++++++++.>.+++.——.——.>+.>.
BlitzBasic
Print "Hello, world!"
WaitKey
BOO
print "Hello, world!"
C
#include <stdio.h>
int main( void )
{
printf ( "Hello, world!/n " ) ;
return 0 ;
}
或者:
#include <stdio.h>
int main( void )
{
puts( "Hello, world!" ) ;
return 0 ;
}
C++
#include <iostream>
int main( )
{
std:: cout << "Hello, world!" << std:: endl ;
return 0 ;
}
或者:
#include <iostream>
using namespace std;
int main( )
{
cout << "Hello, world!" << endl;
return 0 ;
}
C++/CLI
int main( )
{
System:: Console :: WriteLine ( "Hello, world!" ) ;
}
C# (C Sharp)
class HelloWorldApp
{
static void Main( string [ ] args)
{
System .Console .WriteLine ( "Hello, world!" ) ;
}
}
或者(仅用于Microsoft Windows)
class HelloWorldApp
{
[ DllImport( "user32.dll" ) ]
static extern MessageBox( string title, string message) ;
public static void Main( )
{
MessageBox( null , "Hello, world!" ) ;
}
}
或者(使用附加的Windows Forms)
using System.Windows.Forms ;
class HelloWorldApp
{
public static void Main( )
{
MessageBox.Show ( "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!~%" )
DOS 批处理
@ echo Hello, world!
对于MS-DOS 3.0或更低版本:
echo off
cls
echo 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
WRITE( * ,* ) 'Hello, world!'
STOP
END
HTML
<!-- 直接輸出... -->
Hello World
<!-- 或者 -->
<html >
<head >
<title > Hello World </ title >
</ head >
<body >
Hello World
</ body >
</ html >
HQ9+
H
INTERCAL
PLEASE DO , 1 <- # 13
DO , 1 SUB # 1 <- # 238
DO , 1 SUB # 2 <- # 112
DO , 1 SUB # 3 <- # 112
DO , 1 SUB # 4 <- # 0
DO , 1 SUB # 5 <- # 64
DO , 1 SUB # 6 <- # 238
DO , 1 SUB # 7 <- # 26
DO , 1 SUB # 8 <- # 248
DO , 1 SUB # 9 <- # 168
DO , 1 SUB # 10 <- # 24
DO , 1 SUB # 11 <- # 16
DO , 1 SUB # 12 <- # 158
DO , 1 SUB # 13 <- # 52
PLEASE READ OUT , 1
PLEASE GIVE UP
Java
public class Hello
{
public static void main( String [ ] args)
{
System .out .println ( "Hello, world!" ) ;
}
}
JSP
<%
out.print ( "Hello, world!" ) ;
%>
或者简单地写成:
<%= "Hello, world!" %>
Lisp
( format t "hello, world~%" )
Lua
print "Hello, world!"
Metapost
beginfig(1);
draw (0,0)--(0,10);
draw (0,5)--(5,5);
draw (5,0)--(5,10);
draw (12,0)--(7,0)--(7,10)--(12,10);
draw (12,5)--(7,5);
draw (14,10)--(14,0)--(19,0);
draw (21,10)--(21,0)--(26,0);
draw (28,5)...(30.5,0)...(33,5)...(30.5,10)...cycle;
draw (38,10)--(39.25,0)--(40.5,10)--(41.75,0)--(43,10);
draw (45,5)...(47.5,0)...(50,5)...(47.5,10)...cycle;
draw (52,0)--(52,10);
draw (52,10)..(57,4)..(52,6.5);
draw (52,5)--(57,0);
draw (61,10)--(61,0)--(66,0);
draw (68,10)--(68,0)..(73,5)..cycle;
endfig;
end
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
Nuva
<..直接输出..>
Hello, world!
<..或者..>
<.
// 不带换行
? "Hello, world!"
// 或者
// 带换行
?? 'Hello, world!'
.>
OCaml
let main ( ) =
print_endline "Hello world!" ;;
Pascal
program Hello;
begin
writeln ( 'Hello, world!' ) ;
end .
Perl
#!/usr/local/bin/perl
print "Hello, world!/n " ;
PHP
<?php
echo 'Hello, world!' ; //通常使用這個,比 print 少一個字元
print 'Hello, world!' ;
?>
或者
<?= "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;
Prolog
goal
write ( "hello, world! ") .
Python
#!/usr/bin/env python
print ( "Hello, world!" )
REXX
say "Hello, world!"
Ruby
#!/usr/bin/ruby
puts "Hello, world!"
Scheme
( display "Hello, world!" )
( newline )
sed
(需要至少一行输入)
sed -ne '1s/.*/Hello, world!/p'
Seed7
$ include "seed7_05.s7i";
const proc: main is func
begin
writeln("Hello, world!");
end func;
Smalltalk
Transcript show: 'Hello, world!'
Small Basic
TextWindow.WriteLine("'Hello, world!")
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;
或者(SQL)
print 'hello,world!'
Tcl
#!/usr/local/bin/tcl
puts "Hello, world!"
TScript
? "Hello, world!"
Turing
put "Hello, world!"
UNIX-style shell
程序中的/bin/sh可改为您使用的shell
#!/bin/sh
echo 'Hello, world!'
bc
#!/usr/bin/bc -q
print "Hello World"
quit
dc
#!/usr/bin/env dc
[Hello World]p
GUI
Delphi
program HelloWorld;
uses
Dialogs;
begin
ShowMessage( 'Hello, World!' ) ;
end .
Nuva
<.
System.Ui.ShowMessage('Nuva', 'Hello, world!', ['OK'])
Visual Basic
MsgBox "Hello, world!"
'或者
Print "Hello, world!"
Visual FoxPro
? "Hello, world!"
X11
用一个程序
xmessage 'Hello, world!'
使用Qt
#include <QApplication>
#include <QLabel>
int main( int argc, char * argv[ ] )
{
QApplication app( argc, argv) ;
QLabel label( "Hello, world!" ) ;
label.show ( ) ;
return app.exec ( ) ;
}
用C++和gtkmm 2
#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) ;
}
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 ( g) ;
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 ) ;
}
}
Java Applet
Java Applet 用于HTML 文件。
HTML代码:
<html >
<head >
<title > Hello World</ title >
</ head >
<body >
HelloWorld Program says:
<applet code = "HelloWorld.class" width = "600" height = "100" >
</ applet >
</ body >
</ html >
Java代码:
import java.applet.* ;
import java.awt.* ;
public class HelloWorld extends Applet
{
public void paint( Graphics g)
{
g.drawString ( "Hello, world!" , 100, 50) ;
}
}
JavaScript
JavaScript 是一种脚本语言。最广泛用于HTML文件中,也可以用在其它宿主环境下,比如Microsoft® Windows® 脚本宿主(WSH )和一些web服务环境。
用于HTML中:
alert ( "Hello, World!" ) ;
//或者
document.write ( "Hello, World!" ) ;
用于WSH中:
WScript.Echo ( "Hello, World!" ) ;
PostScript
PostScript 是一种专门用来创建图像的语言,常用于打印机。
/font /Courier findfont 24 scalefont
font setfont
100 100 moveto
(Hello World!) show
showpage
XAML
<Page
xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class ="XAMLSample.Page1"
>
<Button Click ="HelloWorld" Name ="Button1" > Click Here</Button>
</Page>
using System ;
using System.Windows ;
using System.Windows.Controls ;
namespace XAMLSample
{
public partial class Page1 : Page
{
void HelloWorld( object sender, RoutedEventArgs e)
{
MessageBox.Show ( "Hello, world!" ) ;
}
}
}
易语言
.版本 2
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
信息框 (“Hello, World!”, 0, )