标签:
计算机 程序语言 语言 计算机技术 软件 技术

hello world

由 marlboro90 创建,最后一次修改 2016-08-11

Hello World ,中文意思:你好,世界。世界上的第一个程序就是Hello World,由Brian Kernighan创作。

基本信息

  • 中文名称

    你好,世界

  • 外文名称

    Hello,World

  • 创造者

    Brian Kernighan

简介

"Hello, world"程序是指在计算机屏幕上输出"Hello,world"这行字符串的计算机程序,"hello, world"的中文意思是"世界,你好"。这个例程在Brian Kernighan 和Dennis M. Ritchie合著的《The C Programme Language》使用而广泛流行。因为它的简洁,实用,并包含了一个该版本的C程序首次出现在1974年Brian Kernighan所撰写的《Programming in C: A Tutorial》

实际上将"Hello"和"World"一起使用的程序最早出现于1972年,出现在贝尔实验室成员Brian Kernighan撰写的内部技术文件《Introduction to the Language B》之中:

最初的"hello, world"打印内容有个标准,即全小写,有逗号,逗号后空一格,且无感叹号。不过沿用至今,完全遵循传统标准形式的反而很少出现。

我们刚开始接触计算机语言大多从Hello world 开始,下面是各种语言的Hello world program:


控制台版

AutoIt

MsgBox(0,'title','Hellp,world!')

ASP

<%response.write "Hello,world!"%>

汇编

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
General-purpose-register CISC: DECPDP-11, RT-11, MACRO-11

MSBASIC

(traditional, unstructured)

CLIST

PROC 0
WRITE Hello, World!

COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
DISPLAY "Hello, world!".
STOP RUN.

CommonLisp

(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

GoogleGo

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

Haskell

module HelloWorld (main) where
main = putStr "Hello World\n"

Iptscrae

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

LOGO

PR "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

MSDOSbatch

@echo Hello, world!
@pause

OCaml

let _ =
print_endline "Hello world!";;
OPL
PROC hello:
PRINT "Hello, World"
ENDP

Perl

print "Hello, world!\n";
或者:

PL/I

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

Python

#3.0以下版本:
#3.0及其以上版本:

REXX

alsoNetRexxand Object REXX
say "Hello, world!"

RPGLE

D Vc_Hello s 100A
C Eval Vc_Hello = 'Hello World!'
C DSPLY Vc_Hello

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

数据库操作版

简单版

StarOfficeBasic

sub main
print "Hello, World"
end sub

swift

println("Hello,world")

Tcl

puts "Hello, world!"

Turing

put "Hello, world!"

UNIX-styleshell

echo 'Hello, world!'

Romanianpseudocode

(UBB Cluj-Napoca)Algoritmul Salut este:
fie s:="Hello, world";
tipareste s;
sf-Salut

习语言

#包含 "习语言系统.接口"
整数类型主函数()
{
格式输出("Hello, world!\n");
暂停();
返回 0;
}

中文汇编

[处理器 486]
[指令模式 双字模式]
[外部的 __fltused]
[外部的 __ftol]
[外部的 __chkstk]
;=========数据段定义===========
段声明 .数据
短语_0 定义字节 'Hello, world!',0aH,00H
;=========代码段定义===========
段声明 .代码
外部的 _格式输出
外部的 _暂停
全局的 _主函数
_主函数:
入栈 基址指针32
入栈 基址寄存器32
入栈 源变址寄存器32
入栈 终变址寄存器32
移动 基址指针32,堆栈指针32
减堆栈指针32, 4
取有效地址累加器32, [短语_0]
入栈 双字类型 累加器32
调用 _格式输出
加堆栈指针32, 4
调用 _暂停
加堆栈指针32, 0
移动累加器32, 0
移动堆栈指针32, 基址指针32
出栈终变址寄存器32
出栈源变址寄存器32
出栈基址寄存器32
出栈基址指针32
返回

闪电脚本引擎

入口
{
信息框("你好,世界(Hello world)!",0,);
}


图形界面版

习语言

#包含 "习语言系统.接口"
#包含 "习语言视窗.接口"
【 主程序 】
整数类型主函数( 整数类型 参数个数, 字符类型 *参数表[])
{
图形初始化显示器( 空指针, 320, 240,空指针, 0, 空指针);
图形打开显示器(0);
图形输出文字(100, 100 ,"Hello, world!");
图形输出文字(10, 200 ,"按任意键退出");
获取按键();
图形关闭显示器(1);
返回 0;
}

Autoit

guicreate("hello, word")
guisetstate()
msgbox(48,"test","hello, word")
while guigetmsg()+3
wend
C++ bindings for GTK graphics toolkit
#include
#include
#include
#include
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;
}

Delphi

1.信息框

2.输出到标签

VisualBasic

1.信息框

2.输出到窗体

易语言

窗体程序:
.子程序 __启动窗口_创建完毕
信息框 ("Hello, world!", 0, )
控制台程序:
.版本 2
.程序集程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
标准输出 (, "Hello World!") ' 输出Hello World
标准输入 () ' 达到暂停程序的效果以便于查看Hello World
返回 (0) ' 可以根据您的需要返回任意数值

O

O汇编语言

.包含文<*oasm32.oah>
.包含文<*user32.oah>
.包含文<*kernel32.oah>
.引用库<*user32.lib>
.引用库<*kernel32.lib>
.代码段
{
入口主函数()
{
提示框(0,&"Hello, world!",&"hello world!",0)
退出进程(0);
}
}

O中间语言

.包含文<*视窗32.omh>
入口 主函数()
{
提示框(0,取地址 "Hello world!",取地址 "",0);
退出进程(0);
}


Web版

Javaapplet

Java applets work in conjunction with HTML files.
HelloWorld Program says:

ASCII码

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

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

LaTeX

\documentclass{article}
egin{document}
Hello, world!
\end{document}

GML

draw_text ( 0 , 0 , "Hello World")

java8

​System.out.print("hello world");


C版详解

下面是C语言 hello world 的源代码.

以下为详解(下面涉及很多其他指针,如果你不懂,请你先看完这篇文章再去查找资料,不要看到"参见"就转到别的地方,因为知识网络是很复杂的,这样你可能一无所获!):

#include 表示将一个文件包含到源代码文件中.
这个预处理指令(不是代码,因为它是在编译前执行的,不会变成最后的exe或者dll的一部分)表示将stdio.h文件包含(或者理解为复制)到此处,stdio.h文件包含各种库函数的申明(也写作声明,即告诉编译器函数的参数列表。请参看关于函数的文章,这里不过多的延伸。这里的函数不是数学里的函数!),其中一个就是下面使用到的输出函数printf.此外,以后你还会遇到包含计算开方结果等函数的声明的math.h,还有很多其他文件。在学习过程中你会自然的学到,这里不用提前记忆。
int 是个数据类型,在C语言中为整型数据.在int main中表示,main函数的返回值为整型(关于返回值参见函数).
main表示一个函数,这个函数为C语言程序的入口函数,所有代码都是从main函数开始执行的.所以main函数为C语言的主函数.如是一个程序没有main,则最后编译连接时,会提示.
在(int argc,char** argv)中,表示main函数有两个参数,一个为int整型,一个为char** .其实你也可以忽略他们,把它们替换成void,void表示空,在数据类型中也表示尚未确定(这种情况一般用于指针,参见指针)。
char** 是一个指针类型,它指向一个字符串数据.(参见指针).C程序运行前,用户可以通过命令行向程序传递一些参数(例如你使用"shutdown -t 60",就向shutdown程序传递了-t 60这个参数。参见命令行,即命令提示符),参数以字符串的形式都保存在argv中,每个参数都以空格分割,argc记录着参数的个数.如果没有传递参数,则系统也会把字符串形式的程序名当做参数传递给程序.所以,argc的值大于等于1.学习完后面的知识,你就可以通过分析这两个参数来允许用户在命令行里给你设定参数了。
printf是C语言中最常用的格式化输出函数.用户通过向printf函数传递各种参数,然后转化成字符串,最终在命令行上输出.这里使用了它的最简单形式:直接在里面写上要显示的字符。请不要在里面使用百分号,因为后面你会知道百分号会给printf函数传递特殊的信息。
return 0;用来在函数要退出时,返回给函数的调用者一个值.一般情况下,意思不大.习惯上,如果程序执行正确,返回一个0,错误则返回1,或者-1.C程序中有各种各样的函数,每个函数之间互相通信,为了知道函数的执行情况,一般都要返回一个值给调用者,或者把函数返回类型写成void(上文介绍了,void表示空、未确定).

分享到:
赞(0)

如果你觉得这篇知识对你有帮助,请给个赞!

右侧导航
二维码
客服
二维码