编程珠玑番外篇-K.高级语言是怎么来的-7

编程珠玑番外篇 -K.高级语言是怎么来的-7« 4G spaces

www.1mpi.com

6 comments September 27, 2011编程珠玑番外篇 -K.高级语言是怎么来的-7

LISP语言前传 Lisp的主要设计者 John McCarthy曾经就 Lisp的发展史,专门写过一篇 History of Lisp的文章。这里介绍的历史,基本史实部分参照了 John McCarthy的这篇文章,以及同时期 MIT的关于 Lisp的技术报告。 Lisp的历史要从 IBM的神奇机器 704说起。此时是 1954年,尽管距离 1946年第一台计算机 ENIAC的出现已经八年了,商用计算机市场还仅仅起步。很早就进入计算机市场的 IBM做出了一个影响深远的决定:发布一台可以进行浮点计算的,面向科学和工程的电子计算机。这台计算机,很朴素地跟着 IBM之前发布的 701,702后,被编号成 704(不知为什么 IBM从来没公布过 703)。说 704是神奇机器,是因为这台机器在计算机科学发展史上意义重大:世界上最早的语音合成程序就是由 Bell实验室的科学家在 IBM 704上完成的。 Fortran,Lisp也是最早在 IBM 704上实现的。和当年的所有计算机一样,IBM 704是个百万美元级别的大玩具,不是一般人甚至一般大学能够买得起的。好在 IBM和大学的关系一向很紧密,在 1957年的时候,决定捐一台 704给 MIT。当时在 Dartmouth教书的 John McCarthy和在 MIT教书的 Marvin Minsky关系很好,因此这台即将到达的 704,即将成为 McCarthy的新玩具。当年部署一台计算机的周期很长,为了不让自己闲着,McCarthy决定一边等机器部署,一边研究一下如果有了这台机器,可以做点什么。当时 Minsky手里有一个 IBM的项目,内容是使用计算机证明平面几何问题。既然计算机没来不能写程序,他们就只能从抽象的层面思考问题的解决方法。这个思考的结果,是开发一套支持符号计算的 Fortran子系统。他们的基本想法是,用一系列的 FORTRAN子程序,来做逻辑推理和符号演绎。回头看,这条路的确绕开了没有 704就写不了程序的路障。因为我们只需要大致了解 Fortran能够做什么,不能做什么,无需实际 Fortran编程,就可以假想我们已经有了一系列未来可以实现的子程序,然后只要在数学上证明这些通过子程序的组合,加上自动逻辑推理,就可以证明平面几何定理。这就把一个计算机工程学问题,抽象成了一个数学问题(日后这个领域被正式划归到人工智能的学科中,但在当时这还是属于数学问题)这样,计算机没来之前,McCarthy的最终结果,是一个用 Fortran子程序做列表处理的简单系统。McCarthy的这条路很现实的做法——如果不用 Fortran而是自己写一个新的语言的编译器话,

可能需要好几年的时间。而 McCarthy当年还不是终身教授,投入到写作新语言这样旷日持久且不能保证成果的项目中去,不会对他的职业生涯有太大的正面作用。 704送到 MIT后, McCarthy带着两个研究生,将之前计划的 Fortran列表处理子程序实现了,并命名为 Fortran列表处理语言 (FLPL)。然而,因为 Fortran语言本身的限制,McCarthy对 FLPL并不满意。他在写作自动求函数导数的程序时[a],发现 FLPL的弱点集中体现在两个地方。

2 of 8

03/25/2012 09:54 AM

编程珠玑番外篇-K.高级语言是怎么来的-7

你可能喜欢

  • 编程珠玑
  • 数据结构算法面试题
  • 华为笔试题
  • 程序员面试题
  • 算法导论
  • 编程之美
  • 猜数字游戏
  • ASP.NET

编程珠玑番外篇 K.高级语言是怎么来的 7相关文档

最新文档

返回顶部