“Hello, World!” —— 初學者進入編程世界的第一步
由布萊恩·柯林漢 撰寫的“Hello, world”程序 (1978年)
布萊恩·W.克尼漢(Brian W. Kernighan)—— Unix 和 C 語言背后的巨人
布萊恩·W.克尼漢
布萊恩·W.克尼漢在 1942 年出生在加拿大多倫多,他在普林斯頓大學取得了電氣工程的博士學位,2000 年之后取得普林斯頓大學計算機科學的教授教職。
他與 Shen Lin 合作共同完成了兩個知名的 NP-complete 優化問題的解決方案:圖劃分問題和旅行推銷員問題。旅行推銷員問題(Travelling Salesman Problem, 又稱為旅行商問題、貨郎擔問題、TSP 問題)是一個多局部最優的最優化問題:有 n 個城市,一個推銷員要從其中某一個城市出發,唯一走遍所有的城市,再回到他出發的城市,求最短的路線。
布萊恩·W.克尼漢除了和丹尼斯?里奇撰寫了《C 程序設計語言》之外,還撰寫了《UNIX 編程環境》,這本書對 UNIX 操作系統的編程環境做了詳細而深入的討論,內容包括 UNIX 的文件系統、Shell、過濾程序、I/O 編程、系統調用等,并對 UNIX 中的程序開發方法做了有針對性的指導。
布萊恩·W.克尼漢在普林斯頓大學為非計算機專業學生開設了一門介紹計算機技術基礎的課程,根據課程講義編寫《D is for digital》—— 中文譯名《世界是數字的》。書中解釋了當今計算和通信領域的工作方式,包括硬件、軟件、因特網等,討論了新技術帶來的社會、政治和法律問題。
Hello World
1972 年,在貝爾實驗室成員布萊恩·W.克尼漢撰寫的內部技術文件《A Tutorial Introduction to the Language B》中首次提到了 “Hello World” 這一字符串。當時,他使用 B 語言撰寫了一個用于演示外部變量的示例程序:
main( ) {extern a, b, c;putchar(a); putchar(b); putchar(c); putchar('!*n');
}a 'hell';
b 'o, w';
c 'orld';
這個程序將在終端打印出 “hello, world”,然后附上一個換行符。之所以這一短語被拆分成多個變量記錄,是因為 B 語言中的每個字符常量只能容納 4 個 ASCII 字符。
1974 年,時值 C 語言取代 B 語言,在貝爾實驗室的又一內部備忘錄《Programming in C: A Tutorial》中,布萊恩·W.克尼漢用 C 語言再次編寫了一個 Hello World 程序作為教學示例。這一程序在他和丹尼斯?里奇于 1978 年出版的《C 程序設計語言》中得到繼承:
main( ) {printf("hello, world\n");
}
在上例中,main () 函數定義了程序開始執行的位置。其主體由一條語句組成,即對 printf (print formatted,打印格式化)函數的調用,將使程序輸出以參數傳遞給它的任何內容,在本例中是字符串 hello, world。
自此,Hello World 成為了電腦程序員學習新的編程語言的傳統。但是,也有些人認為 hello, world 的字符串早于 1966 年的 BCPL 語言出現的時候已經出現。雖然相關的字詞確實在發明者記錄的文件出現,但是可以肯定的是,Hello World 在當時確實沒有流行。因此,人們公認為布萊恩·W.克尼漢是令該字符串走進公眾目光的人。
K&R
起初,C 語言沒有官方標準。1978 年貝爾實驗室正式發表了 C 語言。布萊恩·W.克尼漢(Brian Kernighan)和丹尼斯?里奇(Dennis Ritchie)出版了《The C Programming Language》。這本書被 C 語言開發者們稱為 K&R,很多年來被當作 C 語言的非正式的標準說明。人們稱這個版本的 C 語言為 K&R C。
至此,布萊恩·W.克尼漢(Brian Kernighan)和丹尼斯?里奇(Dennis Ritchie)兩人簡稱 K&R。
via : Hello World https://zh.wikipedia.org/wiki/Hello_World
縱觀編程歷史,“Hello World” 在向初學者介紹編碼世界方面發揮了至關重要的作用。
雖然 “Hello World” 看似微不足道,但它不僅是一個承載著編程教育的歷史和文化意義的簡單程序,也是初學者進入編程世界的第一步,代表了編碼無限可能性之旅的開始。
擴展閱讀
-
“Hello, World”的歷史 —— The History of ‘Hello, World’ - HackerRank Blog
https://www.hackerrank.com/blog/the-history-of-hello-world/
-
300 種編程語言的 Hello World 程序列表 —— List of Hello World Programs in 300 Programming Languages – MYCPLUS
https://www.mycplus.com/featured-articles/hello-world-programs-in-300-programming-languages/