彼得·蘭丁

出自Local Chinese Wikipedia
(重新導向自Peter J. Landin
跳至導覽 跳至搜尋
彼得·蘭丁
Peter Landin
出生(1930-06-05)1930年6月5日
File:Flag of the United Kingdom (1-2).svg 英國英格蘭謝菲爾德
逝世2009年6月3日(2009-06-03)(78歲)
國籍File:Flag of the United Kingdom (1-2).svg 英國
公民權File:Flag of the United Kingdom (1-2).svg 英國
母校劍橋大學克萊爾學院
知名於ISWIM, J算子英語J operator, SECD抽象機, 越位規則
科學生涯
機構克里斯托弗·斯特雷奇助手
UNIVAC
麻省理工學院
瑪麗王后學院
受影響自約翰·麥卡錫
阿隆佐·邱奇
克里斯托弗·斯特雷奇
施影響於托尼·霍爾

彼得·約翰·蘭丁(英語:Peter John Landin,1930年6月5日—2009年6月3日[1][2]),英國電腦科學家。他最早提出阿隆佐·邱奇λ演算可以被用作電腦程式語言的模型,這後來成為函數式程式設計指稱語意的基礎。

學術生涯[編輯]

蘭丁出生於英格蘭謝菲爾德,中學時代就讀於愛德華七世學校;他從劍橋大學克萊爾學院畢業[2]。在1960年,他成為了克里斯托弗·斯特雷奇的助手,當時斯特雷奇在倫敦擔任一名獨立電腦顧問。在1964年,他到美國參與了UNIVAC的工作;在1966年,他去了麻省理工學院工作。他的大部分成果均發表於1960年至1966年期間。1967年他在倫敦瑪麗王后大學找到了一份教職工作。70年代到80年代,他的主要精力投入了倫敦瑪麗王后大學電腦科學部的創設、課程設置和教學[3]。在他退休之後,他獲得了倫敦瑪麗王后大學的理論計算學榮譽教授稱號。2012年,倫敦瑪麗王后大學的電腦科學大樓以他的名字命名。

2001年,在倫敦科學博物館的一個關於程式語言形式語意學的會議上,他回顧了他的學術生涯;他的電腦科學研究肇始於20世紀50年代,極大地受到了當時約翰·麥卡錫LISP語言的影響,而他自己使用得最多的程式語言則是Fortran[4]

60年代,蘭丁在ALGOL程式語言的標準化制定中起到了推動作用[5][6];圖靈獎獲得者托尼·霍爾稱他是幾個教會他ALGOL 60語言的人之一[7]

1964年,蘭丁提出了閉包的概念。這一概念後來被Scheme語言實現,並逐漸成為了函數式程式設計中的重要概念。蘭丁設計了SECD抽象機,這是第一個被確切定義的用於函數式程式設計語言的抽象機

1966年,他在SECD抽象機的基礎上設計了ISWIM程式語言,定義了他所謂的越位規則,並第一次提出了程式語言語法糖的概念。越位語法規則使用空格縮排來控制名稱聲明的範疇,這後來在MirandaHaskellPythonF#等語言中得到了運用。

蘭丁最重要的論文是1966年發表的《The next 700 programming languages》,它對後來程式語言研究影響深遠[8]。之所以選擇「700」這個數字,據說是因為蘭丁在《ACM期刊》上讀到一篇文章說世界上已經存在過700種程式語言[9]

個人生活與政治傾向[編輯]

蘭丁是一名公開的雙性戀[2]同性戀權益活動家,在20世紀70年代早期參與過同志解放陣線英語Gay Liberation Front的活動。他曾一度因參加反核遊行而被逮捕。[10]他還是一名自行車友。

部分學術著作[編輯]

  • Landin, Peter J. The mechanical evaluation of expressions (PDF). The Computer Journal (British Computer Society). 1964, 6 (4): 308–320 [2022-11-16]. doi:10.1093/comjnl/6.4.308. (原始內容存檔 (PDF)於2022-11-16). 
  • Landin, Peter J. T. B. Steel, Jr. , 編. A formal description of Algol 60. Formal Language Description Languages for Computer Programming. 1966: 266–294. 
  • Landin, Peter J. Correspondence between ALGOL 60 and Church's Lambda-notation: part I. Communications of the ACM (Association for Computing Machinery). February 1965a, 8 (2): 89–101 [2022-11-16]. doi:10.1145/363744.363749. (原始內容存檔於2022-11-16). 
  • Landin, Peter J. A correspondence between ALGOL 60 and Church's Lambda-notation: part II. Communications of the ACM (Association for Computing Machinery). March 1965b, 8 (3): 158–165 [2022-11-16]. doi:10.1145/363791.363804. (原始內容存檔於2022-11-16). 
  • Landin, Peter J. A Generalization of Jumps and Labels. UNIVAC Systems Programming Research (technical report). 1965-08-29.  Reprinted in: A Generalization of Jumps and Labels. Higher-Order and Symbolic Computation. December 1998, 11 (2): 125–143. doi:10.1023/A:1010068630801. 
  • Landin, Peter J. The next 700 programming languages. Communications of the ACM (Association for Computing Machinery). March 1966, 9 (3): 157–166 [2022-11-16]. doi:10.1145/365230.365257. (原始內容存檔於2022-11-16). 

參考文獻[編輯]

  1. Peter Landin頁面存檔備份,存於互聯網檔案館), Lambda the Ultimate頁面存檔備份,存於互聯網檔案館), 4 June 2009.
  2. 2.0 2.1 2.2 Bornat 2009a
  3. Acknowledged in the foreword to the text book 「Programming from First Principles」 by Richard Bornat. Published by Prentice Hall, 1987. ISBN 978-0-13-729104-5.
  4. Program Verification and Semantics: Report. [2014-07-27]. (原始內容存檔於2007-09-26). , 2001.
  5. Listed amongst those who attended the November 1959 conference in [Paris] [1]頁面存檔備份,存於互聯網檔案館) and the 1962 conference [2]頁面存檔備份,存於互聯網檔案館).
  6. Landin 1964
  7. ACM Turing Award Lecture: The Emperor's Old Clothes. C. Antony R. Hoare, 1980, Published in the Communications of the ACM.
  8. Landin 1966
  9. Personal communication, September 2007.
  10. Bornat 2009b

擴充閱讀[編輯]