词条 | LISP |
释义 | 1 链表处理语言◎ 概述◎ 链表处理语言LISP语言(全名LISt Processor,即链表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。 约翰·麦卡锡于2011年10月24日因病逝世于美国,享年84岁。 LISP有很多种方言,各个实现中的语言不完全一样。各种LISP方言的长处在于操作符号性的数据和复杂的数据结构。1980年代Guy L. Steele编写了Common Lisp试图进行标准化,这个标准被大多数解释器和编译器所接受。在Unix/Linux系统中,还有一种和Emacs一起的Emacs Lisp(Emacs的拓展语言便是Lisp)非常流行,并建立了自己的标准。 LISP的祖先是1950年代Carnegie-Mellon大学的Newell、Shaw、Simon开发的IPL语言。 LISP语言的主要现代版本包括Common Lisp和Scheme。 lisp拥有理论上最高的运算能力 lisp在cad绘图软件上的应用非常广泛,普通用户均可以用lisp编写出各种定制的绘图命令。 ◎ 名址分离网络协议注意:LISP在近几年也指一种名址分离网络协议,即 Location-ID Separation Protocol。 在Internet的不断发展和壮大的同时,也呈现出了更多的弊端以及面临着诸多方面的挑战,包括全局路由表的持续不断的增长、缺乏对multi-homing和业务量工程以及移动性和安全性很好的支持等多方面的因素。 为了彻底地解决上述问题,众多研究者都提到名址分离这一想法,如LISP\\HIP等。在LISP中,原有的网络IP地址被分成EID(end-identifier)和RLOC(routing locator)。其中,EID用于标志主机,不具备全局路由功能;RLOC用于全网路由。名址分离网络自然会引入名与址的映射,即LISP中EID-to-RLOC的映射。众所周知,分级结构有着非常明显的优点,如结构简单、查询效率高等;已有方案中HRA、HAIR、RANGI、HiiMap、Lisp_CONS都提到采用分级结构进行映射系统的设计。 ◎ 基本介绍Lisp的表达式是一个原子(atom)或表(list),原子(atom)是一个字母序列,如abc;表是由零个或多个表达式组成的序列,表达式之间用空格分隔开,放入一对括号中,如: abc () (abc xyz) (a b (c) d) 最后一个表是由四个元素构成的,其中第三个元素本身也是一个表。 正如算数表达式1+1有值2一样,Lisp中的表达式也有值,如果表达式e得出值v,我们说e返回v。如果一个表达式是一个表,那么我们把表中的第一个元素叫做操作符,其余的元素叫做自变量。 Lisp的7个公理(基本操作符): 公理一: (quote x)返回x,我们简记为'x 公理二: (atom x)当x是一个原子或者空表时返回原子t,否则返回空表()。在Lisp中我们习惯用原子t表示真,而用空表()表示假。 > (atom 'a) t > (atom '(a b c)) () > (atom '()) t 现在我们有了第一个需要求出自变量值的操作符,让我们来看看quote操作符的作用——通过引用(quote)一个表,我们避免它被求值。一个未被引用的表达式作为自变量,atom将其视为代码,例如: > (atom (atom 'a)) t 反之一个被引用的表仅仅被视为表 > (atom '(atom 'a)) () 引用看上去有些奇怪,因为你很难在其它语言中找到类似的概念,但正是这一特征构成了Lisp最为与众不同的特点——代码和数据使用相同的结构来表示,而我们用quote来区分它们。 公理三: (eq x y)当x和y的值相同或者同为空表时返回t,否则返回空表() > (eq 'a 'a) t > (eq 'a 'b) () > (eq '() '()) t 公理四: (car x)要求x是一个表,它返回x中的第一个元素,例如: > (car '(a b)) a 公理五: (cdr x)同样要求x是一个表,它返回x中除第一个元素之外的所有元素组成的表,例如: > (cdr '(a b c)) (b c) 公理六: (cons x y)要求y是一个表,它返回一个表,这个表的第一个元素是x,其后是y中的所有元素,例如: > (cons 'a '(b c)) (a b c) > (cons 'a (cons 'b (cons 'c ()))) (a b c) 公理七: 条件分支,在Lisp中,它是由cond操作符完成的,cond是七个公理中最后一个也是形式最复杂的一个(欧几里德的最后一个公理也如是): (cond (p1e1) (p2e2)...(pnen)) p1到pn为条件,e1到en为结果,cond操作符依次对p1到pn求值,直到找到第一个值为原子t(还记得吗?)的p,此时把对应的e作为整个表达式的值返回,例如: > (cond ((eq 'a 'b) 'first) ((atom 'a) 'second)) second 好了,至此我们已经有了Lisp世界的所有基本公理,我们可以开始构建整个世界的规则了。 2 日本女子声优团体由阿澄佳奈、片冈あづさ及原纱友里三位美少女所组成的"超至近距离"声优团体 【LISP】。2010年10月27日以数位单曲在日本出道。【LISP】的原意是指「口齿不清」「未开发的」「人工智慧程序编排用语」。因是新人的我们【LISP】,即使是表现有些笨拙不灵巧,但我们会一步一步朝目标迈进,也希望能和支持我们的粉丝们一起努力共同成长,随时随地让粉丝们感受我们陪伴於左右。 3 定位编号分离协议LISP(Locator ID Separation Protocol)实质是个IPinIP的协议,LISP提出将标识Locator的IP(RLOC)和标识目的节点ID的IP(EID)进行区分和叠加封装,在公网传输时只根据Locator IP转发,只有到达站点边缘时才会剥离外层IP,使用内层标识EID的IP进行转发。 其主要思想早在15年前就已经被人提出来进行研究,然而一直没有太具体的东西产出。直到2006年,Cisco重新开始投入资源进行研究.但就应用来说。Cisco的LISP目前也只处于试验阶段,距离能够推广商用还有不短的时间,很多技术细节方面问题需要解决。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。