なぜかエッフェル!?
みなさん、ようこそ。
このページは、「エッフェルは はじめて」という方のために、あらまし を紹介します。
Eiffel は、純粋なオブジェクト指向のプログラミング言語です。
実行時にオブジェクトの型を決めること(動的型付け)ができる Smalltalk に対して、プログラムソース上で型を宣言し決定していなければならない(静的型付け)という点で、「強く型付けされた言語」に分類されます。
1985年にバートランド・メイヤ(Bertrand Meyer)博士によって考案され、1986年に彼の会社である ISE(Interactive Software Engineering) で開発されました。それゆえ、この言語には、直系の親や祖先に位置づけることができる言語は存在しません。
現在、言語の定義と仕様は、パブリック ドメインとして、"Eiffel"の商標とともに、NICE(Eiffel のための非営利国際コンソーシアム)によって統制されています。
コンピュータの歴史の中では比較的新しく、最新技術の中では比較的古いものである、といえます。より具体的には、「オブジェクト指向のプログラミング言語の祖」と言われる Simula より10年以上新しく、「オブジェクト指向のプログラミング言語のニューホープ」とささやかれる Java より10年以上古いことになります。
"Eiffel" という名前は、フランスはパリにある エッフェル塔 を設計した技術者、Gustave Eiffel にちなんで名付けられた、ということです(残念ながら、私の浅学ため、どうして彼の名前にあやかったか、ということまでは知りません。もしどなたかご存知の方がいらしたら、お手数ですが教えてください)。
ちなみに、日本のオブジェクト指向の世界では、日本語で書くときも、「ジャバ」と同様、英語の発音にしたがって「アイフェル」とするそうです。
Eiffel が開発された目的、あるいは Eiffel が支援するものは、高品質で再利用可能なソフトウェアの設計と構築です。
そのために、「契約」という考え方に重点を置き、プログラムソースで事前条件や事後条件、そして不変条件などといった取り決めを表明できるようになっています。これにより、誤った前提条件に変貌しがちな「暗黙的了解」を明示でき、プログラムソース自体の可読性とドキュメンタリティを向上させることができます。また、実行時のコードが表明された条件を監視することによって、安全に動作しているかを検査するメカニズムを組み込んでいます。
Eiffel は、言語として、おおむね次のような特徴を含みます。
クラス
多重継承
多態性
静的型付けと動的束縛
総称性(制約された、または制約されない)
例外メカニズム
表明
deferedされたライブラリクラス
また、Eiffel には、もう一つ大切な特徴があります。それは、Eiffel のほとんどのコンパイラが、コンパイルによって機械語のコードを生成するのではなく、C や Java などでコンパイル可能な他の言語のプログラムソースを生成するということです。
これは、必ずしも Eiffel の言語が持つ特徴ではありませんが、開発環境や実行環境を選択する際に考慮する必要があるでしょう。
Eiffel を学習するために利用できる本は、日本語では、前述のバートランド・メイヤ博士による「オブジェクト指向入門」(1990,アスキー,ISBN-4-7561-0050-3) ぐらいのようです。ただ、この本の言語仕様は、古いバージョンに基づいており、最近の処理系とは一部異なる部分もあります。文献が出回っていないということは、それだけ国内での利用が少ないことを表わしているといえます。
英語を読むことをいとわない人は、ISE の BOOKS のページか、Eiffel FAQ を参照してください。入門用には、「Eiffel An Introduction」(Robert Switzer, 1993, ISBN 0-13-031303-3)や「Eiffel: The Language」(Bertrand Meyer, 1992, ISBN 0-13-247925-7)が広く読まれているようです。より詳しく学習したい人は、最新の「Object-Oriented Software Construction」第二版(Bartrand Meyer, 1997, ISBN 0-13-629155-4)がお勧めのようです。
実際に Eiffel を体験したいという方は、Object Tools の Visual Eiffel Lite がお勧めです。このコンパイラの処理系は、Lite 版はフリーで利用することができ、Windows などの GUI に対応した操作性の良い環境を提供します。
Java をコンパイルし実行できる環境を持っている方は、フリーで利用できる SmallEiffel が面白そうです。
本家本元元祖の ISE からも Eiffel の処理系をダウンロードすることができ、期限付きですがフリーで利用できます。
さらに、ちゃんとしたコンパイラを購入したいという方は、日本でも取り扱っている会社があるので、リンク集 からたどってください。御多分に漏れず、国内のウェッブで Eiffel の情報を提供するところ少ないのは、やはり人気の低さを物語っています。
こんなところで、大まかなイメージを掴むことができたでしょうか?
では、みなさん、今後のご健闘をお祈りします。
1998年2月 著者記す。