Gaucheプログラミング(立読み版)

LispとScheme Slideshow

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の設計思想はシンプルさを追求している
 

Comment Form:

コメント・トラックバック規約を必ずお読みください。

 

Comments:

2007/09/14 16:23:41 えんどう
ご指摘ありがとうございました。修正しました。(+1 (/ (* 2 3) 4))
2007/09/13 21:23:45 ponkun
>2007/05/12 21:17:55 take
take さんが指摘したことに基づきあやまりを認めたのなら、ページを更新してください。
しょっぱなからデタラメをみせられたら、他の記述も疑いの目でみてしまいます。それは、
学習効果をねらってわざと嘘を書いたのですか、このページの管理者は読者からの
フィードバックを読んでますか。
 1 + 2 * 3 / 4 != (/ (* (+ 1 2) 3) 4)
2007/05/12 21:17:55 take
一般に、1 + 2 * 3 / 4 は (1 + 2) * 3 / 4 って表記しないと、
(/ (* (+ 1 2) 3) 4) と等しくならないと思うのですが、、、
意図をはずしていたらすみません。
2006/05/06 18:07:16 shiro
「Scheme言語が登場する以前にLisp言語で最もメジャーだったCommon Lispは…」はまずいです。Schemeは1975年、Common Lispの最初のde facto仕様CLtL1は1984年。さらにCLOSはその後です。実際、CLが静的スコープをデフォルトにしたのはSchemeの影響だといわれています。

どう直すかですが、歴史的な話を正確に短くまとめるのは大変なので、むしろこのパラグラフは切ってしまって良いかと思います。現代のLispの主流は「何でも取り込んだCL」と「ミニマリストのScheme」であること、Schemeはその仕様の単純さから多数の処理系が存在すること、R5RSだけでは実用的なプログラムを書きづらいが、ポピュラーなScheme処理系は多数の拡張を含んでいて実用にも問題ないこと、なんかを盛りこめばいいんじゃないでしょうか。


Trackback URL: http://karetta.jp/trackback/book/000322/004622

Trackbacks:


このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation