Lisp/始めの一歩/インストール

Common Lisp でプログラミングを始めるには、 Common Lisp の処理系を手に入れることが必要となります。ほとんどの処理系は大体のオペレーティングシステムで利用可能です。処理系には無料で利用できるものと、商業ベース(有料)のものがあります。

ブラウザベースの処理系 編集

Common Lisp のコマンドを全くインストールすることなしに試してみるには、最も現実的なツールは以下のようなブラウザベースの処理系となります。

ほかにも以下のような Lisp 方言のための便利なオンライン対話型環境もあります。

充実している開発環境 編集

Lispbox 編集

Lispbox は初心者にも優しいように、すぐに動かせるような Common Lisp の環境を提供しようとする試みです。Lispbox には Common Lisp の処理系に加えて以下のようなものが含まれています。

  • Emacs, 強力で拡張可能なテキストエディターです。
  • SLIME, Common Lisp のすばらしい統合環境を提供する、Emacsの拡張機能です。
  • ASDF, コードライブラリの追加とインストールのための Common Lisp の拡張です。
  • そして、書籍 "Practical Common Lisp" のためのサンプルコードです。

Lispbox を使い始めるのは非常に容易なはずです。 Lispbox を起動すると、EmacsはLispのプロンプトを表示するでしょう。プロンプトでは対話的にあなたの書いているコードを編集することが出来ます。ためしにプロンプトで、この Wikibooks のサンプルコードをコピーペーストして何が起こるかを確かめてみてください。もしあなたが編集しているコードを失いたくないのなら、Emacsでどのようにファイルとバッファーを操作するか学ばなければなりません。が、Emacsの操作はこのWikibooksの範囲外となります。(Emacsの使用法を学ぶには、Emacs付属のチュートリアルを見てください。Emacsのチュートリアルを実行するにはEmacsの"Help"メニューを見るか、それかEmacs流に Ctrl-H, T あるいは C-h t とタイプしてください。) Lispコードを含む新しいファイルをEmacsで作成したとき、バッファがLispモードになっているかどうか確かめてください。(もしそのファイルの拡張子が .lisp ならば、すでにLispモードになっているでしょう。)そして、 C-c C-k とタイプすると、ファイル全体がコンパイルされ、読み込まれます。あるいは C-c C-c とタイプすれば、あなたが編集しているトップレベル表示にファイルがコンパイルされ読み込まれます。

Slimeに関する情報がもっと書かれるべきなのですがまだ書かれていません。

Able 編集

Able は able/systems ディレクトリにインストールされたライブラリが利用できるエディタです。このエディタは設定後すぐに利用できるように期待が込められています。デフォルトでいくつかのライブラリが含まれています。

無料で利用できる実装 編集

注意: Lispbox をインストールしたくない場合でも、 Emacs/SLIMEの組み合わせを実行環境として利用することを強く推奨します。理由は、無料で提供されている実装のテキスト制御は非常に扱いづらいからです。そのため、ほとんどのユーザーにはSLIMEが提供するような快適な開発環境の方がいいでしょう。

GNU CLISP 編集

GNU CLISP はWindowsや、ほとんどのUnix系のシステムで動かすことが可能な、人気のある無料で利用できる実装です。もしあなたがWindowsを使っているのなら、選択肢は CLISP しかありません。 CLISP は ANSI規格 Common Lisp の全ての機能を備えており、インストールも非常に簡単です。

GNU CLISP の特徴 編集

  • Unicodeを完全サポート
  • 集約されたインターフェイスとコンパイラのメッセージ機能
  • 高い移植性。大抵のプラットフォームで実用的に動く
  • 他のプラットフォームに移植可能なバイトコードへのコンパイル(他のほとんど全ての Common Lisp の実装はネイティブコード(マシン語)にコンパイルされます。)
  • 軽量なメモリ使用量
  • 任意精度浮動小数点計算

GNU CLISP の欠点 編集

  • 複雑な計算になると遅い

CMUCL 編集

CMU Common Lisp は高性能な Common Lisp の実装です。

CMUCL の特徴 編集

  • 仮想スレッド(いわゆるグリーンスレッド; x86 に限る)
  • 最適化コンパイラの吐き出すマシン語による高速に動作するコード
  • 高速なコンパイラ

CMUCL の欠点 編集

  • 相対的なことだが移植性が低い(サポートとされているプラットフォームのリストを見るには CMUCL portability webpage を見てください。)

SBCL 編集

Steel Bank Common Lisp は CMU Common Lisp から派生したものです。移植性に優れ、マシン語コンパイルを行うことに特徴があります。複数のプラットフォームの間で一番人気のある Common Lisp のコンパイラは CMUCL でも CCL でもなく断然 SBCL でしょうし、この人気もしばらく継続するでしょう。これらの中から選ぶにしても、SBCLはより優れたデバッガをサポートしているので結構な選択です。(たとえば、SBCLのコンパイラは、より多くの警告を吐き出し、ANSI準拠と言う点では、より厳格だと言われています。)

SBCL の特徴 編集

  • Unicodeをサポート
  • 非常に移植性が高い: Mac OS X を含むUnixライクなシステムや、マイクロソフト Windows でも動作します。
  • Intelベースのプラットフォーム上でのスレッド操作
  • 最適化コンパイラがマシン語を生成するため、実行速度は上々です。

SBCL の欠点 編集

  • コンパイルの速度が遅い( SBCL では最適化を「たくさん」行います。そのため遅くなるのです。)

Clozure CL 編集

Clozure CL はPowerPCとAMD64向けの Common Lisp の実装です。x86向けの開発段階のリリースもあります。Mac OS X ならば Clozure CL は最も人気のある選択でしょう。しかし Mac OS X 上で動くように、GNU/Linux や FreeBSD/amd64 でもうまく動くはずです。 Windows 向けのベータ版も存在します。 Mac OS X では Clozure CL は Cocoa インターフェイスを持つことに特質があります。

Clozure CL の特徴 編集

  • 完全な Unicode サポート
  • 高速なコンパイルと、高速なコードの生成
  • Mac OS X の GUI 開発環境のための Cocoa インターフェイス
  • ネイティブスレッド操作

Embeddable CL (ECL) 編集

ECL は拡張性と組み込み可用性に焦点を当てた Common Lisp の実装です。この二つの目標は Common Lisp を C言語に翻訳することと、それを gcc のような C言語コンパイラでコンパイルすることで達成されました。 Embeddeble CL は Linux, FreeBSD, NetBSD, OpenBSD, Solaris そして Windows 上で動作します。また、Intel, Sparc, Alpha そして PowerPC といったプロセッサの上位レベルで動作します。

Embeddable CL の特徴 編集

  • Unocode をサポート
  • Common Lisp を C言語に翻訳することで相対的にですが高速なマシン語を生成します。
  • 低速な実装時間を回避したインタプリタ
  • オンデマンドでのプログラムの読み込み。 Embeddeble CL では必要になるまでモジュールの読み込みは保留されます。
  • 移植性の高い C言語ソースでのファイルの出力は、他のアーキテクチャでのコンパイルを可能にします。
  • Lisp から C言語 を呼び出すことも、 C言語 から Lispを呼び出すことも可能(たとえば、 Embeddable CL はどんなプログラムにおいても C言語 の関数を呼び出せる拡張言語として利用できます。)
  • ネイティブスレッド操作

Embeddable CL の欠点 編集

  • 相対的にコンパイルが遅い(もしあなたがより早い C言語コンパイラを使用しているのなら gcc は遅く感じるでしょう。)
  • エラーハンドリングが相対的に脆弱(たとえば、あなたが Embeddable CL でセグメンテーション違反を起こすのは非常に簡単でしょう。)

Armed Bear Common Lisp 編集

ABCL は Java仮想マシンのトップレベルで動作する Common Lisp の実装です。 Armed Bear Common Lisp はランタイムシステムと、コンパイラを備えており、コンパイラは Lisp ソースを Java仮想マシンコードに変換します。そしてプログラム開発環境である対話的な REPL も備えています。

Armed Bear Common Lisp の特徴 編集

  • 移植性の高い Java のバイトコードを生成すること。
  • Java のライブラリが簡単に利用可能

Armed Bear Common Lisp の欠点 編集

  • 他の実装に比べて非常に遅い

商業ベース(有料)の実装 編集

Allegro, LispWorks, そして Corman Lisp にはお試しバージョンがあります。言語を学ぶには役に立つでしょう。全て Windows 上で動作します。

外部リンク 編集

様々な特徴を持ったCommon Lisp の実装