Common_Lisp

Infobox programming language | name = Common Lisp | logo = Lisp logo.svg | logo size = 160px | paradigm = 多範型 ： 過程式, 函數式, 面向對象, 元編程, 反射式, 泛型 | designer =,,,, Guy Steele, | developer = ANSI 委員會 | released =, ANSI Common Lisp ： | typing = 動態類型 、 強類型 | influenced_by = Lisp,, Maclisp, Scheme, | influenced = Clojure, Dylan, Emacs Lisp,, ISLISP, R,,, Julia | operating_system = 跨平臺 | license = GNU通用公共許可證 、 Artistic License | website = 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之上 。