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 程序的列表:
trace("Hello, world!");
with TEXT_IO; procedure HELLO is begin TEXT_IO.PUT_LINE ("Hello, world!"); end HELLO;
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
.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
<% Response.Write("Hello, world!") %>
<%= "Hello, world!" %>
MsgBox(1,'','Hello, world!')
BEGIN { print "Hello, world!" }
echo 'Hello, world!'
或者:
printf 'Hello, world!\n'
传统版 BASIC(例如 GWBASIC):
10 PRINT "Hello, world!" 20 END
或在提示符输入:
? "Hello, world!"
现代版 BASIC(例如 Quick BASIC):
PRINT "Hello, world!"
以下的语句,在 Quick BASIC 中同样有效:
? "Hello,world!"
GET "LIBHDR"
LET START () BE
$(
WRITES ("Hello, world!*N")
$)
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<< +++++++++++++++.>.+++.——.——.>+.>.
Print "Hello, world!" WaitKey
print "Hello, world!"
#include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; }
或者:
#include <stdio.h> int main(void) { puts("Hello, world!"); return 0; }
#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; }
int main() { System::Console::WriteLine("Hello, world!"); }
class HelloWorldApp { static void Main() { 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!"); } }
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. DISPLAY "Hello, world!". STOP RUN.
(format t "Hello world!~%")
@echo Hello, world!
对于MS-DOS 3.0或更低版本:
echo off cls echo 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").
." Hello, world!" CR
WRITE(*,*) 'Hello, world!'
STOP
END
<!-- 直接輸出... --> Hello World <!-- 或者 --> <html> <head> <title> Hello World </title> </head> <body> Hello World </body> </html>
H
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
public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } }
<% out.print("Hello, world!"); %>
或者简单地写成:
<%="Hello, world!"%>
print "Hello, world!"
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
它会帮你画出来……
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
<..直接输出..> Hello, world! <..或者..> <. // 不带换行 ? "Hello, world!" // 或者 // 带换行 ?? 'Hello, world!' .>
let main () = print_endline "Hello world!";;
program Hello; begin writeln('Hello, world!'); end.
#!/usr/local/bin/perl print "Hello, world!\n";
<?php echo 'Hello, world!';//通常使用這個,比 print 少一個字元 print 'Hello, world!'; ?>
或者
<?= "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;
goal
write("hello,world!").
#!/usr/local/bin/python print "Hello, world!"
#!/usr/local/bin/python print("Hello, world!")
say "Hello, world!"
#!/usr/bin/ruby print "Hello, world!\n"
(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;
Transcript show: 'Hello, world!'
OUTPUT = "Hello, world!"
END
CREATE TABLE MESSAGE (TEXT char(15)); INSERT INTO MESSAGE (TEXT) VALUES ('Hello, world!'); SELECT TEXT FROM MESSAGE; DROP TABLE MESSAGE;
#!/usr/local/bin/tcl puts "Hello, world!"
? "Hello, world!"
put "Hello, world!"
程序中的/bin/sh可改为您使用的shell
#!/bin/sh echo 'Hello, world!'
program HelloWorld; uses Dialogs; begin ShowMessage('Hello, World!'); end.
<.
System.Ui.ShowMessage('Nuva', 'Hello, world!', ['OK'])
.>
MsgBox "Hello, world!" '或者 Print "Hello, world!"
? "Hello, world!"
用一个程序
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); }
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用于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是一种脚本语言。最广泛用于HTML文件中,也可以用在其它宿主环境下,比如Microsoft® Windows® 脚本宿主(WSH)和一些web服务环境。
用于HTML中:
alert("Hello, World!"); //或者 document.write("Hello, World!");
用于WSH中:
WScript.Echo("Hello, World!");
PostScript是一种专门用来创建图像的语言,常用于打印机。
/font /Courier findfont 24 scalefont font setfont 100 100 moveto (Hello World!) show showpage
<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!"); } } }
stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History