Hello World
Hello, World是指在電腦螢幕顯示「Hello, World!」(你好,世界!)字串的電腦程式。相關的程式通常都是每種電腦編程語言最基本、最簡單的程序,也會用作示範一個編程語言如何運作[1]。同時它亦可以用來確認一個編程語言的編譯器、程序開發環境及運行環境是否已經安裝妥當。因為寫法簡單可見,這也是很多初學者首次接觸程式語言時會撰寫的程序。
傳統用途
傳統來說,當一位程式設計師接觸一門新的編程語言的時候,「Hello, World」就會成為首個接觸的內容。[2][3][4]
與此同時,相同的字串亦會用作檢測開發環境是否安裝妥當以及相關的操作人員是否理解相關的環境。
歷史
於1972年,貝爾實驗室成員布萊恩·柯林漢撰寫的內部技術文件《A Tutorial Introduction to the Language B》首次提到了Hello World這字串。當時,他使用B語言撰寫了第一個使用參數的Hello World相關程序:
main(){
extrn a,b,c;
putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';
這個程序成為了第一個Hello World的示範程序。之所以會這樣切割,是因為於B語言中,每個參數只能放置四個ASCII字符[5]。兩年後,布萊恩·柯林漢和丹尼斯·里奇基於B語言寫成C語言後,在他們撰寫的《C程序设计语言》使用更簡單的方式展示Hello World:
#include <stdio.h>
main( )
{
printf("hello, world\n");
}
自此,Hello World成為了電腦程序員學習新的程式語言的傳統[6]。但是,有些人認為 hello, world 的字串早於1966年的BCPL語言出現的時候已經出現[7]。雖然相關的字詞確實在發明者記錄的文件出現,但是可以肯定的是,Hello World這字串於當時確實未變得流行。因此,人們公認為布萊恩·柯林漢是令相關字串走進公眾目光的人。
但是需要注意的是,Hello World的初始寫法為「hello, world」,並沒有任何感嘆號,全部都是小寫,內含逗號,逗号後面亦有空格,而和現在流行的寫法並不一致。
衍生影響
對電腦文化的影響
Debian以及系统的進階包裝工具當中包含了「hello, world」安裝工具。用戶只需要於終端(Linux 系統的Terminal)輸入「apt-get install hello」便能夠安裝此工具及其相關部件。雖然看似沒用,但卻可作為測試工具使用。同時,這亦能夠向新用戶展示安裝工具的方法。對開發者來說,這個工具展現了建立.deb安裝工具的方法。這個工具,連同GNU Hello便成為了撰寫GNU程式的教學軟件。[2]
對其他電子產品的影響
雖然Hello World在單晶片微電腦、现场可编程逻辑门阵列及複雜可程式邏輯裝置中不能展現出來,一盞細小的微型LED燈會代替Hello World的作用,以表示安裝成功、相關程式功能已實現[8][9][10][11][12]。
對流行文化的影響
Hello World已經成為流行文化的一部分,例如以Hello World命名首個運用純人工智慧完成的專輯。[13] 虛擬YouTuber公司hololive production在Hololive Alternative企劃預告PV末使用"//Hello,Δlternative World"來致敬此文化。[14]同時,亦有若干公司以Hello World命名,例如位於澳洲的Helloworld旅遊公司[15]、Hello World Consulting[16]等。
參見
- Hello World程序樣例
- A+B问题
- 99瓶啤酒
- Just another Perl hacker
- 基本的電腦科學主題列表
參考來源
- James A Langbridge. . [2018-04-30]. (原始内容存档于2017-02-05).
- . gnu.org. GNU Project. [2017-07-07]. (原始内容存档于2014-05-29).
- W3schools. . [2018-04-30]. (原始内容存档于2018-05-08).
- . 普林斯頓大學. [2018-04-30]. (原始内容存档于2017-10-12).
- . [2018-04-30]. (原始内容存档于2015-06-11).
- Kernighan, Brian W.; Ritchie, Dennis M. 1st. Englewood Cliffs, NJ: Prentice Hall. 1978. ISBN 0-13-110163-3.
- BCPL 页面存档备份,存于, Jargon File
- Silva, Mike. . EmbeddedRelated.com. 2013-09-11 [2015-05-19]. (原始内容存档于2015-05-22).
- George, Ligo. . electroSome. [2015-05-19]. (原始内容存档于2014-11-05).
- PT, Ranjeeth. . The Linux Documentation Project. [2015-05-19]. (原始内容存档于2015-05-02).
- Andersson, Sven-Åke. . RTE. Realtime Embedded AB. 2012-04-02 [2015-05-19]. (原始内容存档于2015-05-21).
- Fabio, Adam. . Hackaday. 2014-04-06 [2015-05-19]. (原始内容存档于2015-05-20).
- BBC. . (原始内容存档于2018-05-13).
- . 已忽略未知参数
|archive-ur1=
(帮助) - . (原始内容存档于2018-05-13).
- . (原始内容存档于2018-04-30).