Common Lisp

Common Lisp
编程范型多范型过程式, 函数式, 面向对象, 元编程, 反射式, 泛型
設計者Scott Fahlman英语Scott Fahlman, Richard P. Gabriel英语Richard P. Gabriel, David A. Moon英语David A. Moon, Kent Pitman英语Kent Pitman, Guy Steele, Dan Weinreb英语Dan Weinreb
實作者ANSI X3J13英语X3J13委员会
发行时间1984年​(1984, ANSI Common Lisp:1994年​(1994
当前版本
    編輯維基數據鏈接
    型態系統动态类型强类型
    操作系统跨平台
    許可證GNU通用公共许可证Artistic License
    文件扩展名.lisp, .lsp, .l, .cl, .fasl
    網站common-lisp.net
    啟發語言
    Lisp, Lisp Machine Lisp英语Lisp Machine Lisp, Maclisp, Scheme, InterLisp英语InterLisp
    影響語言
    Clojure, Dylan, Emacs Lisp, EuLisp英语EuLisp, ISLISP, R, SKILL英语SKILL, SubL英语SubL, Julia

    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 LispAutoLISP,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之上。


    Common Lisp

    Dodaje.pl - Ogłoszenia lokalne