Lisp(历史上是Lisp,“列表处理”的缩写)是一个具有悠久历史的编程语言家族,具有独特的,完全括号前缀表示法。[3]Lisp最初是在1960年指定的,是继Fortran和COBOL之后仍在普遍使用的第三古老的高级编程语言。[4][5] Lisp从早期开始就发生了变化,在它的历史上存在过许多方言。今天,最著名的通用Lisp方言是Common Lisp、Scheme、Racket和Clojure[6][7][8]。
Lisp最初是作为计算机程序的实用数学符号而创建的,受Alonzo Church的λ演算符号的影响(尽管最初不是派生自)[9]。它很快成为人工智能(AI)研究的一种受欢迎的编程语言。[10]作为最早的编程语言之一,Lisp在计算机科学中开创了许多思想,包括树数据结构、自动存储管理、动态类型、条件、高阶函数、递归、自托管编译器、[11]和read-eval-print循环[12]。
LISP这个名字来源于“列表处理器”。[13]链表是Lisp的主要数据结构之一,Lisp源代码就是由链表组成的。因此,Lisp程序可以将源代码作为数据结构来操作,从而产生宏系统,允许程序员在Lisp中创建新的语法或新的特定于领域的语言。
代码和数据的可互换性使Lisp具有可立即识别的语法。所有的程序代码都被写成s表达式,或者用圆括号括起来的列表。函数调用或语法形式写成一个列表,函数或操作符的名称在前面,参数在后面;例如,接受三个参数的函数f将被称为(f arg1 arg2 arg3)。
John McCarthy于1958年在麻省理工学院(MIT)时开始开发Lisp。麦卡锡在1960年4月的《美国计算机协会通讯》上发表了一篇论文,题为“符号表达式的递归函数及其机器计算,第一部分”。[14]他展示了用几个简单的运算符和从丘奇那里借来的匿名函数的符号,就可以建立一个图灵完备的算法语言。
信息处理语言(Information