徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

Common Lisp和链表

快捷方式: 差异相似杰卡德相似系数参考

Common Lisp和链表之间的区别

Common Lisp vs. 链表

Common Lisp,縮寫為CL(不是組合邏輯的縮寫)是Lisp編程語言的一種方言,由ANSI INCITS 226-1994(R2004)(前身為ANSI X3.226-1994(R1999)),所定義的語言規範標準。Common Lisp HyperSpec是源自於ANSI Common Lisp標準的網頁超連結版本。 CL語言是為標準化和改良Maclisp而開發的後繼者。到20世紀80年代初,幾個工作群組已經在設計MacLisp各種後繼者,例如:Lisp Machine Lisp(又名 ZetaLisp),Spice Lisp,NIL和S-1 Lisp。CL是為了標準化和擴展此前眾多的MacLisp分支而開發,它本身並非具體的實作,而是對語言設立標準的規範。有數個實作符合Common Lisp規範,其中包括自由和開源軟件,以及商業化產品。CL支援了結構化、函數式和物件導向編程等範式。相对于各种嵌入在特定产品中的语言,如Emacs Lisp和AutoLISP,Common Lisp是一種用途廣泛的编程语言。不同於很多早期Lisp,Common Lisp如同Scheme,其中的變量是預設為詞法作用域的。 身為一種動態編程語言,它有助於進化和增量的軟件開發,並將其迭代編譯成高效的執行程序。這種增量開發通常是互動持續地改善,而不需中斷執行中的應用程序。它還支援在後期的分析和優化階段添加可選的型別註記與轉型,使編譯器產生更有效率的代碼。例如在硬體和實作的支援範圍內,fixnum能保存一個未封裝整數,允許比大整數或任意精度類型更高效率的運算。同樣地,在每個模組或函數的基礎上可聲明優化,指示編譯器要編譯成哪一類型的安全級別。 CL包含了支援多分派和方法組合的物件系統,縮寫為CLOS,它通常以元物件(Metaobject)協定來實現。 CL藉由標準功能進行擴展,例如Lisp宏(编译时期程序自身完成的代码重排(compile-time code rearrangement accomplished by the program itself))和阅读器宏(赋予用户自定义的語法以扩展具特殊意义的符号(extension of syntax to give special meaning to characters reserved for users for this purpose))。 CL為Maclisp和约翰·麦卡锡的原創Lisp提供了一些向後兼容性。這允許較舊的Lisp軟件移植到Common Lisp之上。. 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。 使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。 在计算机科学中,链表作为一种基础的数据结构可以用来生成其它类型的数据结构。链表通常由一连串节点组成,每个节点包含任意的实例数据(data fields)和一或两个用来指向上一个/或下一个节点的位置的链接("links")。链表最明显的好处就是,常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序,数据的存取往往要在不同的排列顺序中转换。而链表是一种自我指示数据类型,因为它包含指向另一个相同类型的数据的指针(链接)。链表允许插入和移除表上任意位置上的节点,但是不允许随机存取。链表有很多种不同的类型:单向链表,双向链表以及循环链表。 链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。程序语言或面向对象语言,如C/C++和Java依靠易变工具来生成链表。.

之间Common Lisp和链表相似

Common Lisp和链表有(在联盟百科)4共同点: GNU通用公共许可证LinuxLISPScheme

GNU通用公共许可证

GNU通用公共授權條款(GNU General Public License,简称 GNU GPL、GPL)是廣泛使用的免費軟件許可證,可以保證終端用戶得自由運行,學習,共享和修改軟件。許可證最初由GNU項目的自由軟件基金會 (FSF)的理查德·斯托曼(Richard Matthew Stallman)撰寫,並授予計算機程序的收件人自由軟件定義的權利。 GPL是一個Copyleft許可證,這意味著衍生作品只能以相同的許可條款分發。 這與許可免費軟件許可證有所區別 ,其中BSD許可證和MIT許可證是廣泛使用的示例。 GPL是第一個普遍使用的Copyleft許可證。 歷史上,GPL許可證系列一直是免費和開源軟件領域最受歡迎的軟件許可之一。 根據GPL許可的優異自由軟件程序的例子有Linux內核和GNU編譯器集合 (GCC)。 David A. Wheeler認為,GPL提供的Copyleft對於基於Linux的系統的成功至關重要,給予向內核貢獻的程序員保證他們的工作將有益於整個世界並保持自由,而不至於被不提供回饋給社群的不肖軟件公司所剝削。 2007年,發布了第三版許可證(GNU GPLv3),以解決在長期使用期間發現的第二版(GNU GPLv2)所發生的一些困擾。 為了使許可證保持最新狀態,GPL許可證包含一個可選的“並延伸到未來版本”條款,允許用戶在FSF更新的原始條款或新版本之間進行選擇。 有些開發人員在軟件授權使用時,選擇省略它; 例如,Linux內核已經在GPLv2下獲得許可,就不需包括“並延伸到未來版本”的聲明。 GPL授予程序接受人以下權利,或稱“自由”,或稱“copyleft”:.

Common Lisp和GNU通用公共许可证 · GNU通用公共许可证和链表 · 查看更多 »

Linux

Linux( )是一種自由和開放源碼的類UNIX作業系統。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。,在加上使用者空間的應用程式之後,成為Linux作業系統。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多數Linux系統還包括像提供GUI的X Window之類的程序。除了一部分專家之外,大多數人都是直接使用Linux發行版,而不是自己選擇每一樣組件或自行設置。 Linux嚴格來說是單指作業系統的内核,因作業系統中包含了許多用戶圖形介面和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,內核則改以Linux内核稱之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux,但Linux不屬於GNU計劃,這個名稱並沒有得到社群的一致認同。 Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级电脑运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是建立在Linux内核之上。 通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其衍生版本Ubuntu、Linux Mint)、Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个符合自己需求的Linux发行版。.

Common Lisp和Linux · Linux和链表 · 查看更多 »

LISP

LISP是具有悠久歷史的計算機編程語言家族,有獨特和完全括號的前綴符號表示法。起源於西元1958年,是現今第二悠久而仍廣泛使用的高階編程語言。只有FORTRAN編程語言比它更早一年。LISP編程語族已經演變出許多種方言。現代最著名的通用編程語種是Common Lisp和Scheme。 LISP最初創建時受到阿隆佐·邱奇的lambda演算的影響,用來作為計算機程序實用的數學表達。因為是早期的高階編程語言之一,它很快成為人工智能研究中最受歡迎的編程語言。在計算機科學領域,LISP開創了許多先驅概念,包括:.

Common Lisp和LISP · LISP和链表 · 查看更多 »

Scheme

Scheme是一种函数式编程语言,是Lisp的两种主要方言之一(另一种为Common Lisp)。不同于Common Lisp,Scheme遵循極簡主義哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身。 麻省理工學院與其他院校曾采用Scheme教授计算机科学入門課程。著名的入門教材《-zh-hans:计算机程序的构造和解释;zh-hant:電腦程式的構造和解釋-》(SICP)利用Scheme來解釋程序設計 。Scheme的廣泛受眾被視為一個主要優勢,然而不同實現之間的差異成為了它的一個劣勢。 Scheme最早由麻省理工學院的蓋伊·史提爾二世與傑拉德·傑伊·薩斯曼在1970年代發展出來,並由兩人發表的「λ論文集」推廣開來。 Scheme語言與λ演算關係十分密切。小寫字母「λ」是Scheme語言的標誌。 Scheme的哲学是:设计计算机语言不应该进行功能的堆砌,而应该尽可能减少弱点和限制,使剩下的功能显得必要。Scheme是第一個使用靜態作用域的Lisp方言,也是第一个引入“干净宏”和第一类续延的编程语言。.

Common Lisp和Scheme · Scheme和链表 · 查看更多 »

上面的列表回答下列问题

Common Lisp和链表之间的比较

Common Lisp有79个关系,而链表有22个。由于它们的共同之处4,杰卡德指数为3.96% = 4 / (79 + 22)。

参考

本文介绍Common Lisp和链表之间的关系。要访问该信息提取每篇文章,请访问:

嘿!我们在Facebook上吧! »