Next: 1.1 Scheme言語
Up: ソフトウェア第三 講義資料 Lisp, リスト処理,集合
Previous: ソフトウェア第三 講義資料 Lisp, リスト処理,集合
Lisp(LISt Processing language, リスト処理言語)は,人工知能の研究向けに1
950年代に発明された言語である.
(John McCarthy, Artificial Intelligence Laboratory, Stanford University
``History of Lisp'',
http://www-formal.stanford.edu/jmc/history/lisp/lisp.html)
Lisp言語は,言語構文が単純であるが,データと関数を同じリスト構造で
表現できる言語で,S式というフォーマットでその構造を表現することで
単純な表現で大変強力な構造と機能を表現することができる言語となっている.
Lisp言語では,数式の変数をシンボルとして式を表現することができ,
数値演算するのではなく,数式を処理する数式処理システムなどを
実現できるところに特徴がある.
また,数値,文字列,配列などもLispのデータとし,文字列を要素とするリス
トを扱うこともできるため,Emacsなどのテキストエディタを記述したり,ポイ
ンタで結ばれる複雑なデータ構造を操作しなければならない機械CADなどの基盤
システムを記述する言語として使われている.
Lisp言語は拡張可能な言語であるため長年にわたってたくさんのLisp方言が
実装されてきている.その多くは 1960年代のMITのMACプロジェクトで
開発されたMaclispの影響を受けている.最終的には,1980年代に
Common Lispと呼ばれるLispシステムの規格が開発され,Common Lisp
言語上のオブジェクト指向プログラミング環境CLOS(Common Lisp Object
System)などが定義されて発展した.
Lisp言語により,以下の項目を実行可能で比較的短いプログラムとして
示すことができ
- Lisp入門,基本関数,制御構造,比較
- リスト,列,集合,グラフのデータ
- グラフの探索,人工知能の問題解決
- Eval,マクロ,スペシャルフォーム
- クロージャとその実現
- オブジェクト指向とクラスシステムの実現
- 幾何モデルとロボットのプログラミング
- パターンマッチングとプロダクションシステム
- ユニフィケーションと論理型言語Prolog
- インタプリタとその処理系
- コンパイラとその処理系
generated through LaTeX2HTML. M.Inaba 平成18年5月7日