Eiffel
Eiffel(アイフェル、エッフェル)は頑健なソフトウェアの生産に注力したオブジェクト指向プログラミング言語である。
1985年にバートランド・メイヤー(Bertrand Meyer)によって考案された。その文法はPascalを連想させるものである。Eiffelは静的な型指定を強く指向しており、かつ動的なメモリ管理(一般的にガベージコレクションにより実装される)を備えている。
少し前、オブジェクト指向の教科書的言語といえば、SmalltalkかEiffelか、という状況で、手続き型言語でのPascalのような存在であった。多重継承、ガベージコレクションといった特徴があるが、設計者によってライブラリのメンテナンスが重視されており、契約による設計(Design By Contract)の概念が全面に打ち出されている。同じくオブジェクト指向を取り入れた言語であるJavaほどは普及していない。Assertionなど、Javaが追いかけているところもあるが、インタフェースによる継承、GCあり、とかぶるところが多い。
また、C/C++のようにネイティブコードを直接生成するのではなく、C言語やJavaのコードを生成する、という特徴ももっている。
言語名の由来は、エッフェル塔ではなく、その設計者ギュスターヴ・エッフェルである。