当前位置 主页 > 站长资源大全 > iis7百科 >

    约翰·麦卡锡——lisp语言发明人

    栏目:iis7百科 时间:2019-11-08 10:03

      程序员知道如何让计算机进行演绎推理,因为计算机能够理解其中涉及的数学。但如果想让计算机进行人类赖以生存的这种推测性的(而又常常是正确的)常识推理,就得发明一种全新的数理逻辑。而这正是约翰·麦卡锡为自己设立的目标之一。
      麦卡锡的成名还有其他原因。他发明了人工智能领域的首要语言Lisp (list processing,表处理),而且自其诞生之日起,就为编程语言设计提供了丰饶的思想源泉。同时,作为一名教师和难题设计师,他在密码学和平面性检验等亚学科领域激发了众多计算机科学家的灵感。我们将在拉宾和陶尔扬的章节中再行描述。
      约翰·麦卡锡1927年出生于波士顿一个共产党积极分子家庭,童年在四处奔波中度过。他的父亲是一名爱尔兰天主教徒,先后做过木匠、渔民和工会组织者,全家一直马不停蹄地奔波,从波士顿搬到纽约,然后又搬到洛杉矶。他的母亲是立陶宛犹太人,最初在联邦通讯社当新闻记者,后来就职于一家共产主义报刊,最后成为了一名社会工作者。麦卡锡早年对科学的兴趣与家庭的政治信仰密不可分。
      当时普遍相信技术对人类必将有利无害。我记得还是小孩的时候,曾读过一本书叫做《十万个为什么》,是前苏联作家米·伊林在20世纪30年代早期写的一套通俗科普书。在美国好像没有这样的书。有趣的是,十几年前我在报上看到过报道一个特别早熟的中国孩子,而他也读过《十万个为什么》。
      麦卡锡认为自己的青少年时期平淡无奇,但事实证明并非如此。在上高三时,他得到了一份加州理工学院的课程目录,上面列出了该校一年级和二年级的微积分课本。他买了这些书,完成了所有的练习题目。这使得他最终在1944年进入加州理工后得以免修头两年的数学课程。
      1959年,麦卡锡基于阿隆索·邱奇的l-演算和西蒙、纽厄尔首创的“表结构”,开发了著名的LISP语言,成为人工智能界第一个最广泛流行的语言。LISP是一种函数式的符号处理语言,其程序由一些函数子程序组成。在函数的构造上,和数学上递归函数的构造方法十分类似,即从几个基本函数出发,通过一定的手段构成新的函数。LISP语言还具有自编译能力。具体说来,LISP有以下几个主要特点:
      1. 计算用的是符号表达式而不是数;
      2.具有表处理能力,即用链表形式表示所有的数据;
      3.控制结构基于函数的复合,以形成更复杂的函数;
      4.用递归作为描述问题和过程的方法;
      5.用LISP语言书写的EVAL函数既可作为LISP语言的解释程序,又可以作为语言本身的形式定义;
      6.程序本身也同所有其他数据一样用表结构形式表示。
      已经证明,LISP的这些特点是解决人工智能核心问题的关键。此外,精巧的表机制也是进一步简化LISP程序设计的方便而有力的工具,因此,LISP自发明以来,已经被广泛用于数学中的符号微积分计算,定理证明,谓词演算,博奕论等领域。它和后来由英国伦敦大学的青年学生柯瓦提出、由法国马赛大学的考尔麦劳厄所领导的研究小组于1973年首先实现的逻辑式语言PROLOG并称为人工智能的两大语言,对人工智能的发展起了十分深远的影响。LISP所蕴含的丰富的思想和深刻的意义也吸引了负责设计Algol语言的国际委员会,麦卡锡因此而被吸收为该委员会的成员。Algol中后来采纳了LISP关于递归和条件表达式这些思想。