彼得·約翰·蘭丁(英語:Peter John Landin,1930年6月5日—2009年6月3日[1][2]),英國計算機科學家。他最早提出阿隆佐·邱奇的λ演算可以被用作計算機程序語言的模型,這後來成為函數式編程和指稱語義的基礎。
學術生涯
蘭丁出生於英格蘭的謝菲爾德,中學時代就讀於愛德華七世學校;他從劍橋大學克萊爾學院畢業[2]。在1960年到1964年間,他成為了克里斯托弗·斯特雷奇的助手,當時斯特雷奇在倫敦擔任一名獨立計算機顧問。他的大部分成果均發表於這期間以及後來在美國麻省理工學院參與UNIVAC工作的短暫時間。之後他在倫敦瑪麗王后大學找到了一份教職工作。70年代到80年代,他的主要精力投入了倫敦瑪麗王后大學計算機科學部的創設、課程設置和教學[3]。在他退休之後,他獲得了倫敦瑪麗王后大學的理論計算學榮譽教授稱號。2012年,倫敦瑪麗王后大學的計算機科學大樓以他的名字命名。
2001年,在倫敦科學博物館的一個關於程序語言形式語義學的會議上,他回顧了他的學術生涯;他的計算機科學研究肇始於20世紀50年代,極大地受到了當時約翰·麥卡錫的LISP語言的影響,而他自己使用得最多的編程語言則是Fortran。[4]
60年代,蘭丁在ALGOL程序語言的標準化制定中起到了推動作用[5][6];圖靈獎獲得者托尼·霍爾稱他是幾個教會他ALGOL 60語言的人之一[7]。
1964年,蘭丁提出了閉包的概念。這一概念後來被Scheme語言實現,並逐漸成為了函數式編程中的重要概念。蘭丁設計了SECD抽象機,這是第一個被確切定義的抽象過程虛擬機。
1966年,他在SECD抽象機的基礎上設計了ISWIM程序語言,定義了他所謂的越位規則,並第一次提出了程序語言語法糖的概念。越位語法規則使用空格縮進來控制名稱聲明的作用域,這後來在Miranda、Haskell、Python和F#等語言中得到了運用。
蘭丁最重要的論文是1966年發表的《The next 700 programming languages》,它對後來程序語言研究有影響深遠[8]。之所以選擇「700」這個數字,據說是因為蘭丁在《ACM期刊》上讀到一篇文章說世界上已經存在過700種程序語言[9]。
個人生活與政治傾向
蘭丁是一名公開的雙性戀[2]、同性戀權益活動家,在20世紀70年代早期參與過同志解放陣線的活動。他曾一度因參加反核遊行而被逮捕。[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).
參考文獻
擴展閱讀
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.