Allegro
[Common Lisp]]は、米国のFranz社が開発・販売しているCommon Lisp処理系および
統合開発環境]です。ANSI [[Common Lisp規格に準拠した代表的な商用処理系の一つであり、豊富な付属ライブラリ、多機能な開発環境、高性能なネイティブコード
コンパイラを備えていることが特徴です。
歴史
1980年代中盤、Lisp市場はLispマシンなどの専用ハードウェアから汎用プロセッサによる
ワークステーションへと移行が進んでいました。当時、Franz社は汎用機
VAX上で動作するFranz Lispで市場でのシェアを拡大していました。
1984年に
Common Lispの仕様が発表されると、新興企業のLucid社が
ワークステーション向けのLisp環境として自社のLucid
Common Lisp処理系をメーカーに
OEM提供する戦略を取りました。これにより、主要な
ワークステーションメーカーのほぼ全てがLucid社の
Common Lispを採用するという状況になりました。
この事態を重く見たFranz社は、自社で
Common Lisp処理系を開発することを決定しました。そして、
OEM先としてTektronixとの契約を獲得し、1986年にTektronix 4400シリーズ向けの
Common Lisp環境としてTek
Common Lispがリリースされました。
その後、Franz社は
Common Lisp処理系の対応プラットフォームを拡大し、Extended
Common Lisp (ExCL) という名称で販売を開始しました。そして、バージョン3.0からは名称をAllegro
Common Lispに変更しました。以降も先進的な機能を積極的に導入し、代表的な商用
Common Lisp処理系として開発と提供を継続しています。
特徴
Allegro
Common Lispは、以下のような特徴を持っています。
高水準のMOPサポート: AMOP(Metaobject Protocol)仕様をフルサポートしています。
ネイティブスレッドとSMPマルチプロセッシング: ネイティブスレッドによる並列処理と、SMP(対称型マルチプロセッシング)環境でのマルチプロセッシングをサポートしています。
Unicodeサポート: Unicodeをサポートし、多言語環境でのプログラミングに対応しています。
他言語インターフェイス: C
言語、Java
言語とのインターフェイスを提供し、既存のライブラリやシステムとの連携が可能です。
オブジェクトの永続化システム: Common Lisp処理系と統合されたオブジェクトの永続化システム(AllegroCache)を搭載しています。(バージョン10.1以降は組み込み機能)
GUI開発: Common Graphicsを基盤とした、マルチプラットフォーム対応のGUI(グラフィカルユーザーインターフェース)を構築できます。
実行ファイル生成: 単体で実行可能なファイルやシェアードライブラリを生成する機能と、不要な機能を削除する機能(ツリーシェーカー)を備えています。
アドオン
Allegro Common Lispには、以下のようなアドオンが提供されています。
AllegroCache: オブジェクトの永続化システム(バージョン10.1より組み込み)。
AllegroServe: Webアプリケーション開発のためのWebサーバ。
Allegro Prolog: Prolog処理系。
ELI (The Emacs-Lisp Interface): Emacsエディタとの連携機能。
Flavors: オブジェクト指向プログラミングのための拡張機能。
Allegro CL Runtime: 実行環境のみを提供するランタイム。
Allegro CLIM (CLIM 2.0): グラフィカルユーザインターフェースを構築するためのCLIM (
Common Lisp Interface Manager) の実装。
Allegro Composer (旧IDE): 旧バージョンの統合開発環境。
Allegro ODBC: ODBC(Open Database Connectivity)を介してデータベースに接続するためのインターフェース。
Allegro Presto: 高速なデータアクセスを提供する機能。(バージョン7.0以降はサポートされていません。)
DDE (Windows): Windows環境におけるDDE(Dynamic Data Exchange)を介したアプリケーション連携。
OLE (Windows): Windows環境におけるOLE(Object Linking and Embedding)を介したアプリケーション連携。
jLinker: Javaとの連携機能。
Allegro Webactions: Webアプリケーション開発のための機能。
AllegroStore: AllegroCacheの前身製品。
Allegro
Common Lispは、長年にわたり開発が続けられており、現代的な
ソフトウェア開発ニーズに対応する様々な機能を提供しています。