Hello World程序样例

Source: Hello World程序样例

Hello World程序样例

在macOS Monterey下,Hello World的正确输出示范之一

以下是用不同语言写成的 HelloWorld 程序的列表:

打印到终端

ActionScript

1
trace("Hello, world!");

Ada

1
2
3
4
5
6
with TEXT_IO;

procedure HELLO is
begin
TEXT_IO.PUT_LINE ("Hello, world!");
end HELLO;

汇编语言

x86 CPU,GNU/Linux,NASM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 .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

8086操作系统(NASM)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[BITS 16]
org 0x7c00
mov ax,cs
mov ds,ax
mov es,ax
call DispStr
jmp $;End Hear
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16;How long is the String
mov ax, 0x1301
mov bx, 0x000c
mov dl, 0
int 0x10
ret
BootMessage: db "Hello, world!"
times 510-($-$$) db 0x0
dw 0xaa55; Bootable Mark

AutoIt

1
MsgBox(1,'','Hello, world!')

AWK

1
BEGIN { print "Hello, world!" }

Bash (或类似shell)

1
echo 'Hello, world!'

或者:

1
printf 'Hello, world!\n'

BASIC

传统版 BASIC(例如 GWBASIC):

1
2
10 PRINT "Hello, world!"
20 END

或:

1
10 PRINT "Hello, world!"

或在提示符輸入:

1
? "Hello, world!"

现代版 BASIC(例如 Quick BASIC):

1
Print "Hello, world!"

以下的语句,在 Quick BASIC 中同样有效:

1
? "Hello, world!"

BCPL

1
2
3
4
5
6
GET "LIBHDR"

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

Brainfuck

1
2
3
++++++++++[>+++++++>++++++++++>+++>+<<<<-]
>++.>+.+++++++..+++.>++.<<+++++++++++++++.
>.+++.------.--------.>+.>.

BlitzBasic

1
2
Print "Hello, world!"
WaitKey

BOO

1
print "Hello, world!"

C

1
2
3
4
5
6
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}

或者:

1
2
3
4
5
6
#include <stdio.h>
int main(void)
{
puts("Hello, world!");
return 0;
}

CoffeeScript

1
console.log 'Hello, world!'

或者:

1
alert 'Hello, world!'

C++

1
2
3
4
5
6
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl;
return 0;
}

或者:

1
2
3
4
5
6
7
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}

C++/CLI

1
2
3
4
int main()
{
System::Control::WriteLine("Hello, world!");
}

C# (C Sharp)

1
2
3
4
5
6
7
8
9
using System

class HelloWorldApp
{
static void Main(string[] args)
{
Console.WriteLine("Hello, world!");
}
}

或者(仅用于Microsoft Windows)

1
2
3
4
5
6
7
8
9
class HelloWorldApp
{
[DllImport("user32.dll")]
static extern MessageBox(string title, string message);
public static void Main()
{
MessageBox(null, "Hello, world!");
}
}

或者(使用附加的Windows Forms)

1
2
3
4
5
6
7
8
using System.Windows.Forms;
class HelloWorldApp
{
public static void Main()
{
MessageBox.Show("Hello, world!");
}
}

COBOL

1
2
3
4
5
6
7
8
9
10
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.

ENVIRONMENT DIVISION.

DATA DIVISION.

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

Common Lisp

1
2
3
4
5
;直接輸出
"Hello world!"

;或者
(format t "Hello world!~%")

DOS批处理

1
@echo Hello, world!

对于MS-DOS 3.0或更低版本:

1
2
3
echo off
cls
echo Hello, world!

Linux Shell

1
echo Hello, world!

Eiffel

1
2
3
4
5
6
7
8
9
10
11
12
13
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

1
2
3
4
-module(hello).
-export([hello_world/0]).

hello_world() -> io:fwrite("Hello, World!\n").

Flowgorithm

Flowgorithm Hello World

Forth

1
." Hello, world!" CR

Fortran

1
2
3
WRITE(*,*) 'Hello, world!'
STOP
END

Go

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("Hello, world!")
}

HQ9+

1
Hello World

INTERCAL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

1
2
3
4
5
6
7
public class Hello
{
public static void main(String[] args)
{
System.out.print("Hello, world!");
}
}

JavaScript

该代码适用于浏览器控制台以及Node.js等服务器端运行环境。

1
console.log("Hello, World!");

Julia

1
println("Hello, world!") 

Lisp

1
2
3
4
5
;直接输出
"hello, world"

;或者
(format t "hello, world~%")

Lua

1
print "Hello, world!"

Malbolge

(=<`#9]~6ZY327Uv4-QsqpMn&+Ij"'E%e{Ab~w=_:]Kw%o44Uqp0/Q?xNvL:`H%c#DD2^WV>gY;dts76qKJImZkj

Matlab

1
disp('hello world!')

Mathematica

Hello[] := Print["``Hello World!``"]
Hello[]

Metapost

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

1
2
3
4
5
6
7
8
9
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<..直接输出..>
Hello, world!

<..或者..>

<.
// 不带换行
? "Hello, world!"

// 或者

// 带换行
?? 'Hello, world!'
.>

Objective-C

1
2
3
4
5
6
7
8
9
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
@autoreleasepool {
NSLog(@"Hello, World!");
}
return 0;
}

OCaml

1
2
let main () =
print_endline "Hello world!";;

Pascal

1
2
3
4
program Hello;{此行可以省略}
begin
writeln('Hello, world!');
end.

Perl

1
2
#!/usr/bin/env perl
print "Hello, world!\n";

Perl 5.10(含)以後版本:

1
2
3
#!/usr/bin/env perl
use 5.010;
say "Hello, world!";

Pike

1
2
3
4
5
6
#!/usr/local/bin/pike
int main()
{
write("Hello, world!\n");
return 0;
}

PL/I

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

Prolog

1
2
goal
write("hello,world!").

Python

Python 2:

1
2
#!/usr/bin/env python
print "Hello, world!"

Python 2.6, 2.7, 3:

1
2
#!/usr/bin/env python
print("Hello, world!")

用"彩蛋""输出Hello World:

1
2
#!/usr/bin/env python
import __hello__

REXX

1
say "Hello, world!"

Ruby

1
2
#!/usr/bin/ruby
puts "Hello, world!"

Rust

1
2
3
fn main() {
println!("Hello, world!");
}

=== Sbyke Laborana ===

1
2
INIT min:1001
Om:"Hello, world!"

Scheme

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

Scratch

Scratch_Hello_World_zh_hant.png

sed

(需要至少一行输入)

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

Seed7

1
2
3
4
5
6
$ include "seed7_05.s7i";

const proc: main is func
begin
writeln("Hello, world!");
end func;

Smalltalk

1
Transcript show: 'Hello, world!'

Small Basic

TextWindow.WriteLine("Hello, world!")

SNOBOL

1
2
    OUTPUT = "Hello, world!"
END

SQL

第一种

1
2
3
4
create table MESSAGE (TEXT char(15));
insert into MESSAGE (TEXT) values ('Hello, world!');
select TEXT from MESSAGE;
drop table MESSAGE;

第二种

1
select 'hello, world';

第三种

1
print 'hello,world!'

Swift

Swift 1.x:

println("Hello, World!")

Swift 2.x, 3:

print("Hello, World!")

Tcl

1
2
#!/usr/local/bin/tcl
puts "Hello, world!"

TScript

1
? "Hello, world!"

Turing

1
put "Hello, world!"

UNIX-style shell

程序中的/bin/sh可改为您使用的shell

1
2
#!/bin/sh
echo 'Hello, world!'

bc

#!/usr/bin/bc -q
print "Hello World"
quit

dc

#!/usr/bin/env dc
[Hello World]p

图形用户界面

AppleScript

1
display dialog "Hello, world!"

或者:

1
display alert "Hello, world!"

Delphi

1
2
3
4
5
6
program HelloWorld;
uses
Dialogs;
begin
ShowMessage('Hello, World!');
end.

Nuva

1
2
3
<.
System.Ui.ShowMessage('Nuva', 'Hello, world!', ['OK'])
.>

Visual Basic

1
2
3
Sub Main()
MsgBox "Hello, world!"
End Sub

Visual FoxPro

1
? "Hello, world!"

X11

用一个程序

1
xmessage 'Hello, world!'

使用Qt

1
2
3
4
5
6
7
8
9
10
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label("Hello, world!");
label.show();
return app.exec();
}

C 和 GTK+

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <gtk/gtk.h>

int main(int argc, char * args[])
{
GtkWidget * win, * label;
gtk_init(& argc, & args);

label = gtk_label_new("Hello, world!");
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_add(GTK_CONTAINER(win), label);
gtk_widget_show_all();

gtk_main();

return 0;
}

用C++和gtkmm 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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代码:

1
2
3
4
5
6
7
8
9
10
<html>
<head>
<title>Hello World</title>
</head>
<body>
HelloWorld Program says:
<applet code="HelloWorld.class" width="600" height="100">
</applet>
</body>
</html>

Java代码:

1
2
3
4
5
6
7
8
9
10
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中:

1
2
3
4
// 弹出对话框
alert("Hello, World!");
// 在页面上显示
document.write("Hello, World!");

用于WSH中:

1
WScript.Echo("Hello, World!");

作为服务器端(Node.js):启动后,需要在浏览器中访问"<http://127.0.0.1:8000/>"查看。

1
2
3
4
5
6
7
8
const http = require('http');

http.createServer((request, response) => {
response.writeHead(200, { 'Content-Type': 'text/plain' });
response.end('Hello World!');
}).listen(8000);

console.log('Server running at http://127.0.0.1:8000/');

PostScript

PostScript是一种专门用来创建图像的语言,常用于打印机。

1
2
3
4
5
/font /Courier findfont 24 scalefont
font setfont
100 100 moveto
(Hello World!) show
showpage

SPARQL

1
2
3
SELECT ?h WHERE { 
VALUES ?h { "Hello World" }
}

XAML

1
2
3
4
5
6
7
<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>

接著使用 C# 建置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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!");
}
}
}

易语言

1
2
3
4
.版本 2
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
信息框 (“Hello, World!”, 0, )

服务器端

以下为Web服务端示例程序,程序启动后,需要用浏览器访问特定地址来查看结果。

ASP

1
<% Response.Write("Hello, world!") %>

或者简单地写成:

1
<%= "Hello, world!" %>

HTML

1
2
3
4
5
6
7
8
9
10
11
<!-- 直接輸出... -->
Hello World
<!-- 或者 -->
<html>
<head>
<title> Hello World </title>
</head>
<body>
Hello World
</body>
</html>

Go

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import (
"fmt"
"net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "hello world")
}

func main() {
http.HandleFunc("/", helloHandler)
http.ListenAndServe("0.0.0.0:8000", nil)
}

JSP

1
2
3
<%
out.print("Hello, world!");
%>

或者简单地写成:

1
<%="Hello, world!"%>

JavaScript

以下为Node.js环境:

1
2
3
4
5
6
7
8
const http = require('http');

http.createServer((request, response) => {
response.writeHead(200, { 'Content-Type': 'text/plain' });
response.end('Hello World!');
}).listen(8000);

console.log('Server running at http://127.0.0.1:8000/');

PHP

以下代码既可以作为服务器端运行,显示在用户浏览器上,也可以在终端中直接运行,输出到终端中:

1
2
3
4
5
<?php
echo 'Hello, world!';
// 或者
print 'Hello, world!';
?>

或者

1
<?= "Hello World!"?>

Hello World程序样例
http://trozure.tech/2023/01/23/Hell-World/
作者
Trozure
发布于
2023年1月23日
许可协议