彼得·兰丁

来自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

扩展阅读[编辑]