編程語言發展史上有哪些趣事?


1、世界上第一個可編程的機器是由法國人Joseph Marie Jacquard於1801年發明的雅卡爾織布機,使用打孔卡片進行編程,控制織布機織出不同圖案的布


2、英國詩人拜倫的女兒、數學家Ada Lovelace描述了一個計算伯努利數的算法和程序,被認爲是最早的計算機程序,並被尊爲第一位程序員。但是,1815年纔出生的她,不可能比上一則說的Jacquard更早地進行編程工作。後來美國國防部組織開展研發的Ada語言以這位女數學家的名字命名。


3、我們一般認爲1957年發明的Fortran是世界上第一門高級編程語言,而實際上早在1942至1945年,發明了世界上第一臺圖靈完全的通用數字計算機Z3的德國工程師Konrad Zuse還研發了一種叫作Plankalkül的語言。可惜的是,Z3在1944年柏林轟炸中被炸燬,Plankalkül在戰爭結束前既沒有正式發表,也沒有被實現。這門語言的設計一直到了1972年才被正式發表出來,而1998年第一個該語言的編譯器才首次被實現。這門語言對後世的編程語言設計幾乎沒有任何影響,但是它卻考慮了包括賦值語句、子程序、條件判斷、循環、浮點小數計算、數組、擁有層次結構的結構體、斷言、異常處理、結果導向執行(注:書上寫作目標搜尋,英文似乎是goal-directed execution)等後來許多語言都不具有的功能,這些設計在當時以及之後的很長一段時間內都是非常具有先進性的。


4、著名計算機科學家、圖靈獎得主John McCarthy於1958年發明了LISP語言,但是LISP這種迥異於其他語言的表達方法S-expression並不是他原本的設計,John McCarthy原本設計了一種叫作M-expression的表達方法,而S-expression則是一種中間語言。令他萬萬沒有想到的是,最後流行開的是那個中間語言S-expression。另外LISP具備垃圾回收、異常處理等後來高級語言的許多特性,也是一門很先進的語言,不過這些已有許多文章進行描述,這裏就不多說了。

M: (A B C)

S: (QUOTE (A B C))


M: car[x]

S: (CAR X)


M: car[append[(A B C); (D E F)]]

S: (CAR (APPEND (QUOTE (A B C)) (QUOTE (D E F))))


5、Guido van Rossum喜歡看喜劇團體Monty Python,所以發明了一個編程語言叫作Python。同樣的,Python自帶的那個IDE,IDLE名字來源於該團體的成員Eric Idle。此外,用來表示垃圾郵件的單詞spam也是出自Monty Python這部作品,而這個單詞在劇中指的是Spam品牌的午餐肉。


6、編程語言Perl的名字來源於珍珠Pearl,發明者Larry希望給語言起一個簡短而有積極含義的名稱。受到這個影響,松本行弘在發明Ruby的時候也從珠寶中選擇名字,並且選擇了Ruby。松本還提到,Ruby還跟誕生石(birthstone)有關,可是生於4月的松本行弘爲什麼選擇了七月份出生的同事的誕生石紅寶石呢,一定是好基友啊。


7、JavaScript的命名還真跟Java有關,所以他們不是雷鋒和雷峯塔的關係,更像是印度和印度尼西亞的關係。Netscape希望這是一個Java的客戶端版本,一種輕型的腳本語言,並且不像Java和C++那樣針對專業的開發人員。


8、Lua的意思是月亮女神,是由三個巴西人Roberto Ierusalimschy、Waldemar Celes、Luiz Henrique de Figueiredo發明。發明的原因是巴西石油公司(當然,是一個國企)PETROBRAS沒辦法使用指定的硬件,使用公衆的資金需要通過一系列的嚴格手續,並且現有設備中什麼平臺什麼系統都有,所以Lua被設計成一個基於ANSI C開發可以任意跨平臺的語言。


9、Smalltalk現在已經很難見到,但是他影響了我們今天還在使用的許許多多語言,以及後來的所有面向對象編程語言的開發者。


10、現在iOS開發者所使用的、在現在大紅大紫的Objective-C,是一個和C++同歲的語言,都是早期對C語言進行拓展的面向對象編程的開拓者。不過iOS上使用的Objective-C 2.0,跟Objective-C的作者Brad Cox沒有一點關係,“除了我喜歡Apple的產品以外,我同他們沒有什麼關係”。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章