Common Lisp 実装

Common Lisp

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/27 15:44 UTC 版)

実装

Common Lisp は、唯一の実装により規定されるものではなく、Ada やC言語のように仕様によって規定されている。

実装は、標準規格でカバーされていない機能を提供するライブラリとともに配布される傾向がある。そのような追加機能をポータブルに利用可能とする フリーソフトウェア ライブラリが作成されている。最も顕著なものが、Common-Lisp.netCommon Lisp Open Code Collection プロジェクトである。

Common Lisp の評価器は式を評価する前にコンパイルする所謂インクリメンタルなコンパイラとして実装が可能なように設計されている[4]。関数のインライン展開のような最適化コンパイルのための標準的な宣言も言語規格内で規定されており、多くの Common Lisp 実装は関数を機械語へとコンパイルする。また、性能では劣るが、バイトコードへとコンパイルする処理系も存在する。また、コンパイル済みのコードとコンパイルされていないコードを混交させても動作に差異がないように言語が設計されているためインタプリタを搭載する処理系でもコンパイラのみ搭載の処理系と動作に違いがない。

CLISP のような、UNIX 上で動くいくつかの実装は、システムが PerlUNIXシェルインタプリタを透過的に呼び出すのと同様に スクリプトのインタプリタ[5]として使うことができる。

処理系

再配布可能な実装の一覧

Steel Bank Common Lisp (SBCL)
後述のCMUCL から分岐して保守性を大幅に強化した処理系[6]であり、現在通常のx86コンピュータで最も使用されている実装の一つ。SBCL は、REPLから入力された評価式であっても、インタプリタを介さず全てネイティブコードにコンパイルしてから実行する[注釈 19]。CMUCL譲りのコンパイラにより非常に強力な最適化を行うことが出来、生成するコードはC言語のコードを上回ることもある。SBCL は、CMUCL が動作するプラットフォームに加えて、LinuxPowerPCSPARCMIPS)、Mac OS XMicrosoft Windows 上でも動作する。ただし、HP-UX 上では動作しない。
Clozure Common Lisp (CCL)
フリー の処理系であり、SBCLと並んで使用されている実装。祖先はMacintoshをプラットフォームとするMacintosh Common Lispという商用の処理系であったが、他のOSプラットフォームへオープンソースとしてフォークされるようになり混同を避けるためClozure CLと改名した[7]。その歴史のため、Mac OS の Cocoa API との連携(実装による独自機能)に強みをもつほか、ファイルの遅延ローディング、デバッグメッセージのわかりやすさなどの特色を持つ。現在は Mac OS XDarwinLinuxPowerPCIntel x86-64)Windows に移植されている。[8]
Embeddable Common Lisp (ECL)
後述のGCLから派生した、C言語で作成されたプログラムに組み込むために設計された処理系である。lispコードはCのコードに変換された上でコンパイル実行されるので、最低限のCコンパイラしか提供されていない組み込み機器などの環境でも、クロスコンパイルにより利用することが出来る。また、C言語の高速性も受け継いでいる。
Armed Bear Common Lisp (ABCL)
Java仮想マシン上で動作する実装である。同マシンのJavaバイトコードへのコンパイラを備えており、Common Lisp プログラムから Java のライブラリにアクセスする事が可能。この処理系は Armed Bear J Editor のコンポーネントであるが、単独で利用する事もできる。[9]近年もアクティブに開発されている。
CMU Common Lisp (CMUCL)
カーネギーメロン大学 で開発された実装を起源とする。現在はボランティアグループによりメンテナンスされる。Pythonと呼ばれる(プログラミング言語の Python とは関連なし)高速なネイティブコードコンパイラの起源となった実装である。Intel x86 上の Linux や BSD、Alpha 上の LinuxSolarisIRIX、HP-UX、PowerPCを含むMac OS Xなどで動作する。
CLISP
バイトコードコンパイラを備えた実装である。移植性に富み、多くの UNIX や、Mac OS X などの UNIXに類似したシステム、および Microsoft Windows、その他のオペレーティングシステムで動作する。
GNU Common Lisp (GCL)
Kyoto Common Lisp から発展したGNUプロジェクトの製品である。完全な ANSI 準拠ではないが、数学ツールの MaximaAXIOMACL2 などを含むいくつかの大規模なプロジェクトで採用されている。この処理系は 11 の異なるアーキテクチャ上の Linux で動作し、WindowsSolarisFreeBSD でも動作する。[10]
Macintosh Common Lisp (MCL)
デジツール社[11]製の処理系である。MCL 5.2 からオープンソース化された。PowerPC 上の Mac OS X で動作する。
Movitz
x86 アーキテクチャ用の処理系であり、オペレーティングシステムに依存しない。
Poplog
Common Lisp を備えたバージョンが存在する。POP-11Common LispPrologStandard ML を備えており、複数の言語を混在させたプログラミングが可能である。また、全ての言語が逐次的にコンパイルされる。コンパイラと通信する Emacs に類似のエディタが統合されている。
Jatha
Common Lisp の大半をサブセットとして実装した Java のライブラリである。[12]
Corman Lisp
Windows用の統合開発環境。コーマン・テクノロジーズ[13]による商用処理系だったが、2015年にオープンソース化[14]

商用の実装

Allegro Common Lisp
Franz(フランツ)[15]による処理系。
LispWorks
LispWorks(リスプワークス)[16]による処理系。
Scieneer Common Lisp
Scineneer(サイエニア)[17]による処理系。

  1. ^ ごくまれにclispとも。なおCLISPという実装が実在するので混同回避のためあまり用いられない
  2. ^ 一方で型nullは、オブジェクトNILを表す型である。
  3. ^ このようなtypespecは、配列の型arrayvalid type specifierである。
  4. ^ : value cell
  5. ^ : function cell
  6. ^ : cons
  7. ^ : cons cell
  8. ^ : pair
  9. ^ : export
  10. ^ : instance
  11. ^ : declaration
  12. ^ : docstring
  13. ^ : condition
  14. ^ : class
  15. ^ : metaclass
  16. ^ : binding
  17. ^ 彼は ジェラルド・J・サスマンとともに Scheme を設計した。
  18. ^ nil はまた、空リストをも表現する。
  19. ^ 最近、インタプリタのサポートも試験的に実装されている。
  1. ^ CLHS: Type ATOM
  2. ^ CLiki : Unicode support
  3. ^ Technical Issues of Separation in Function Cells and Value Cells
  4. ^ 3.1 Evaluation
  5. ^ 32.6. Quickstarting delivery with CLISP
  6. ^ History and Copyright - Steel Bank Common Lisp
  7. ^ Clozure CL History
  8. ^ http://trac.clozure.com/openmcl
  9. ^ http://armedbear.org/abcl.html
  10. ^ http://www.gnu.org/software/gcl/
  11. ^ http://www.digitool.com/
  12. ^ http://jatha.sourceforge.net/
  13. ^ http://www.cormanlisp.com/
  14. ^ https://github.com/sharplispers/cormanlisp
  15. ^ http://www.franz.com/
  16. ^ http://www.lispworks.com/
  17. ^ http://www.scieneer.com/
  18. ^ http://www.stsci.edu/resources/software_hardware/spike/
  19. ^ http://ic.arc.nasa.gov/projects/remote-agent/
  20. ^ 「2003 年 1 月、ヤフーは新しいバージョンの、C++ と Perl で書かれたエディタ(訳注: Viawebのシステムのうち、Lispで書かれていた、サイトを構築するシステムの部分)をリリースした。それは『もはやプログラムは Lisp で書かれていない』というよりも『プログラムを C++ に変換するために Lisp インタプリタを書いた』というようなものであった。私の知る限り、すべてのページ生成テンプレートのソースファイルは依然として Lisp コードのままだった(「グリーンスパンの第10法則」を見よ)。」、ポール・グレアムBeating the Averages
  21. ^ http://all-things-andy-gavin.com/2011/03/12/making-crash-bandicoot-gool-part-9/
  22. ^ ページ下部,開発者のコメント http://dwave.wordpress.com/2011/05/20/learning-to-program-the-d-wave-one-software-you-should-install-a-book-you-should-buy/
  23. ^ http://www.dwavesys.com/careers/senior-software-developer
  24. ^ http://www.itasoftware.com/about/index.html
  25. ^ http://www.izware.com/
  26. ^ http://www.izware.com/mirai/
  27. ^ http://www.piano.aero/
  28. ^ http://www.xanalys.com/
  29. ^ http://www.genworks.com/
  30. ^ http://www.noteheads.com/
  31. ^ http://compo.sourceforge.net/
  32. ^ http://lisa.sourceforge.net/






固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Common Lisp」の関連用語

Common Lispのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Common Lispのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのCommon Lisp (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS