彼得·兰丁
彼得·约翰·兰丁(英语:Peter John Landin,1930年6月5日—2009年6月3日[1][2]),英国计算机科学家。他最早提出阿隆佐·邱奇的λ演算可以被用作计算机程序语言的模型,这后来成为函数式编程和指称语义的基础。
彼得·兰丁 Peter Landin | |
---|---|
出生 | 英国英格兰谢菲尔德 | 1930年6月5日
逝世 | 2009年6月3日 | (78岁)
国籍 | 英国 |
公民权 | 英国 |
母校 | 剑桥大学克莱尔学院 |
知名于 | ISWIM, J算子, SECD抽象机, 越位规则 |
科学生涯 | |
机构 | 玛丽王后学院 |
受影响自 | 约翰·麦卡锡(John McCarthy) 阿隆佐·邱奇(Alonzo Church) 克里斯托弗·斯特雷奇(Christopher Strachey) |
施影响于 | 托尼·霍尔(Tony Hoare) |
学术生涯
编辑兰丁出生于英格兰的谢菲尔德,中学时代就读于爱德华七世学校;他从剑桥大学克莱尔学院毕业[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).
参考文献
编辑- ^ Peter Landin (页面存档备份,存于互联网档案馆), Lambda the Ultimate (页面存档备份,存于互联网档案馆), 4 June 2009.
- ^ 2.0 2.1 2.2 Bornat 2009a
- ^ 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.
- ^ Program Verification and Semantics: Report. [2014-07-27]. (原始内容存档于2007-09-26)., 2001.
- ^ Listed amongst those who attended the November 1959 conference in [Paris] [1] (页面存档备份,存于互联网档案馆) and the 1962 conference [2] (页面存档备份,存于互联网档案馆).
- ^ Landin 1964
- ^ ACM Turing Award Lecture: The Emperor's Old Clothes. C. Antony R. Hoare, 1980, Published in the Communications of the ACM.
- ^ Landin 1966
- ^ Personal communication, September 2007.
- ^ Bornat 2009b
扩展阅读
编辑- Bornat, Richard. Peter Landin obituary. The Guardian Obituaries. 2009-09-23: 34 [2009-09-29]. (原始内容存档于2012-12-23).
- Bornat, Richard. Peter Landin: a computer scientist who inspired a generation, 5th June 1930 - 3rd June 2009. Formal Aspects of Computing (Berlin: Springer-Verlag). 2009-09-17, 21 (5): 393–395. ISSN 0934-5043. doi:10.1007/s00165-009-0122-y.