Lisp言語はアセンブラやFORTRANに次ぐ最も古いプログラミング言語の一つです。Lisp言語はジョン・マッカーシーによって1959年頃に開発されました。
Lisp言語はS式と呼ばれる構文を基本構造としています。S式はリスト構造を表現するのが容易です。
LispとはLISt Processorに由来しています。
S式は様々なデータ構造を表現できるだけでなく、Lispの手続き表現の基盤となっています。S式を基盤にすることで、Lisp言語はシンプルな言語仕様と広い拡張性を備える事が出来ました。
具体例
Lisp言語のコードは丸括弧で括られた前置記法で記述されます。
例えば、
1 + 2 * 3 / 4
上記を計算するには
(+ 1 (/ (* 2 3) 4))
と書く必要があります。これらを部分式に分解すると、それぞれが
(手続き 引数1 引数2 ...)
という構文であることが分かります。
この構文を前置記法と呼びます。
1 + 2 * 3 / 4
前置記法に対し、上記の例を中置記法と呼びます。
Lispプログラムではすべて前置記法を使います。
中置記法を使用することはありません。
背景にある思想
Lispの根本思想はリスト構造を基盤とした統一的な記述方法と拡張性にあります。
歴史が長いLisp言語には様々な方言があります。現在の主流はCommon LispとSchemeの2つです。
Common LispもSchemeもともにその思想を受け継いでいますが、
それぞれ異なる方向に進化しました。
Common LispはANSI(アメリカ規格協会)によって言語仕様が標準化されました。Common Lispはオブジェクト指向をはじめとする他の多くのプログラミングパラダイムを意欲的に取り込んでいるのが特徴です。
Scheme言語はガイ・スティールJrとジェラルド・J・サスマンによって1975年に開発されました。
Scheme言語はCommon Lispと対照的に極めてシンプルな言語仕様を特徴としています。R5RSと呼ばれるScheme言語の仕様書は50ページほどの分量しかありません。
Scheme言語の仕様書R5RS: Revised^5 Report on Algorithmic Language Scheme --
アルゴリズム言語 Scheme に関する報告書第5改訂版。
1998年に書かれたもので、現在の最新版です。(次期標準としてR6RSが策定中です)
原文:
日本語訳:
言語仕様がシンプルなためか、Scheme言語には数多くの処理系が存在します。Gaucheもその一つです。
Scheme言語処理系はR5RSの仕様を満たすことが最低条件ですが、それだけでは実用的なプログラムを書くのに不便です。いくつかのScheme言語処理系には、応用的なライブラリや独自の拡張を含むものがあります。
Gaucheも他のScmeme処理系にないライブラリや独自の拡張を持っています。本書では他の処理系にないGaucheのユニークな特徴を紹介していきます。
要約
- LispとはLISt Processorの略である
- LispはS式と呼ばれる表記法でリスト構造を表現する
- LispではプログラムコードもS式で表現する
- 主なLisp方言はCommon LispとSchemeである
- 何でも取り込むCommon Lispと比べ、Schemeの設計思想はシンプルさを追求している