firemail
标题:
LISP
[打印本页]
作者:
firemail
时间:
2017-9-12 17:58
标题:
LISP
LISP是一种通用高级计算机程序语言,长期以来垄断
人工智能
领域的应用。LISP作为因应人工智能而设计的语言,是第一个声明式系内
函数式程序设计
语言,有别于命令式系内过程式的
C
、
Fortran
和面向对象的
Java
、
C#
等
结构化程序设计
语言。
LISP名称源自列表处理(LISt Processing)的英语缩写,由来自麻省理工学院的人工智能研究先驱
约翰·麦卡锡
(John McCarthy)在1958年基于
λ演算
所创造,采用抽象数据列表与
递归
作符号演算来衍生人工智能。
发展历程
[url=]
编辑[/url]
1960年4月,麦卡锡以《递回函数的符号表达式以及由机器运算的方式,第一部》为题,于
ACM
通讯上发表LISP设置。麦卡锡的学生Steve Russell根据该论文,以IBM 704于麻省理工学院的计算机运算中心成功执行了第一版的LISP。
1962年,麦卡锡及人工智能小组按LISP 1的编译基础上改良出LISP 1.5版本。
Lisp发展不同版本时序
1969年9月,
史丹福大学
人工智能实验室的Lynn Quam与Whitfield Diffie推出的Stanford LISP 1.6广泛地被应用于使用TOPS-10系统的PDP-10计算机系中。可是,Stanford LISP 1.6版本自麻省理工智能项目更新LISP 1.5成MACLISP及
BBN科技公司
推出的InterLisp成功后,渐被弃置。
自1960代末年至1980年初年,各种更新LISP版本涌现,有源自加利福尼亚大学伯克利分校的Franz Lisp、在
AutoCAD
运行的
AutoLISP
前身XLISP、
犹他大学
开展的Standard Lisp及Portable Standard Lisp、专属于Lisp机器上运行的ZetaLisp、源自
法国国家信息与自动化研究所
的LeLisp、以及MIT人工智能实验室的Gerald Sussman与Guy Steele所开发的
Scheme
等。
1984年,改良自MacLisp、集各版本大成、跨平台、且被目为
事实标准
的
Common Lisp
诞生。至1994年,
美国国家标准学会
(ANSI)对Common Lisp语言进行了标准化。
自稳定运行的Common Lisp出现起,再有各机构按各自所需而开展后续Lisp,包括1990年来自欧洲用户的EuLisp、运行于
Java虚拟机
的
Clojure
、
受到Maclisp影响而创的
Emacs
Lisp
、以及自由开源来自
卡内基·梅隆大学
的
CMUCL
、还有IsLisp,Racket,
ACL2
等蓬勃涌现。
自2000年起,LISP共享者合力支援的自由开源社区逐渐形成,致力于LISP后续发展。
2002年10月,第一届国际LISP会议于美国旧金山开展,其后LISP大会不定期于全球各地举行,包括2014年在加拿大
蒙特利尔大学
以移动概念作主题的会议。
语言特点
[url=]
编辑[/url]
LISP为
函数式程序设计
语言,所有运算都能以函数作用于参数的方式来实
LISP机器原型收藏于MIT人工智能实验室
现。
LISP没有命令式语言程序中常见赋值语句和变量,重复的过程可以使用
递归
的函数调用来表示,并不需要使用循环模式。
LISP是古老的函数语言、弱类型、动态推断,其代码本身就是各种列表。每一个表项均可以储存任何类型的数据如数字、函数、符号或一个子表等,在编码时,可以随时操作以更新列表。
LISP核心的操作符只有7个
操作符
:quote、atom、eq、car、cdr、cons、cond。前三者quote、atom、eq用于符号的推断;car、cdr、cons操纵表格;cond负责分支判断。这种简洁定义,非常接近
图灵机
原型的纯函数式语言,是现代语言完全无法比拟的。
LISP作为弱类型这优点相对缺点则是运行效率的低下。原始定义简洁的缺点使到大型开发工程变得困难,自底层到高层,自
二维表
查询到
面向对象
,使用者需要嵌入更多的函数来实现,致使LISP众多方言的衍生。
欢迎光临 firemail (http://www.firemail.wang:8088/)
Powered by Discuz! X3