Eiffel
外觀
編程範型 | 面向對象, 基於類, 泛型, 並發 |
---|---|
設計者 | Bertrand Meyer |
實作者 | Eiffel Software |
釋出時間 | 1986年[1] |
當前版本 |
|
型態系統 | 靜態 |
實作語言 | Eiffel |
系統平台 | 跨平台 |
作業系統 | FreeBSD, Linux, Mac OS X, OpenBSD, Solaris, Windows |
許可證 | 雙許可和企業許可 |
文件擴展名 | .e |
網站 | www |
主要實作產品 | |
EiffelStudio, LibertyEiffel, SmartEiffel, Visual Eiffel, Gobo Eiffel, "The Eiffel Compiler" tecomp | |
啟發語言 | |
Ada, Simula, Z | |
影響語言 | |
Ada 2012, Albatross, C#, D, Java, Racket, Ruby,[3] Sather, Scala |
Eiffel是一套物件導向程式語言,1985年由伯特蘭·邁耶所發明。文法類似Pascal ,並且將語言本身與軟件工程、和工具結合為一。Eiffel實現契約式設計(Design by Contract)的風格。
語法與語義
[編輯]整體架構
[編輯]一個Eiffel「系統」或「程序」是指一個「類」的集合。Eiffel系統有一個Cluster的概念。通過一個叫做ACE的外部組件描述類之間的組合關係的,Cluster可以是幾個類,或者幾個子Cluster,或者是它們的混合。但是Cluster不是Eiffel的語言構造,Eiffel語言中,類是惟一的構造模塊。
"Hello, world!"
[編輯]一支程式語言都會有"Hello, world!"的程式碼。以Eiffel的表示如下:
class
HELLO_WORLD
create
make
feature
make
do
print("Hello, world!%N")
end
end
這支程式有類HELLO_WORLD
。其建構例程的名稱是make
,它會呼叫print
系統函式庫例程將"Hello,
world!"
的訊息給輸出。
Eiffel中不像C系列(C、C++、Java、C#)的語言,通過約定某個叫做main的函數來啟動應用,而是通過ACE來指定一個類作為整個應用的啟動。這個類的構造函數也就成為應用的起始點。
引用
[編輯]- ^ Eiffel in a Nutshell. archive.eiffel.com. [24 August 2017]. (原始內容存檔於2019-01-13) (英語).
- ^ EiffelStudio 24.05 is available!. 2024年6月14日 [2024年7月7日].
- ^ Cooper, Peter. Beginning Ruby: From Novice to Professional. Beginning from Novice to Professional 2nd. Berkeley: APress. 2009: 101. ISBN 978-1-4302-2363-4.
To a lesser extent, Python, LISP, Eiffel, Ada, and C++ have also influenced Ruby.
- ^ EiffelStudio 21.11 is available!. Eiffel.org. 11 February 2022.
外部連結
[編輯]- Basic Eiffel Language Mechanisms(頁面存檔備份,存於互聯網檔案館), Bertrand Meyer(頁面存檔備份,存於互聯網檔案館), August 2006.
- Eiffel Software's Open Source initiative(頁面存檔備份,存於互聯網檔案館)
- Eiffel Software(頁面存檔備份,存於互聯網檔案館) web site of the company that introduced Eiffel, was Interactive Software Engineering (ISE).
- Eiffel tutorial (100 pages) by Bertrand Meyer(HTML(頁面存檔備份,存於互聯網檔案館), PDF(頁面存檔備份,存於互聯網檔案館))
- Eiffel standard(頁面存檔備份,存於互聯網檔案館), revision 2 (2006); this is the ECMA standard, with free access, its text identical to that of the ISO standard.
- SmartEiffel(頁面存檔備份,存於互聯網檔案館) (formerly SmallEiffel) a complete Eiffel compiler released under GNU GPL license, translates Eiffel code either to C or Java bytecode, not standard compliant, with emphasis on performance.
- "The Eiffel Compiler" (tecomp)(頁面存檔備份,存於互聯網檔案館) an open source Eiffel compiler with documentation(頁面存檔備份,存於互聯網檔案館).
- Visual Eiffel an open source implementation of Eiffel creating native code for X86 systems(Windows, Linux)
- NICE(頁面存檔備份,存於互聯網檔案館) Nonprofit International Consortium for Eiffel.
- eiffelroom.com(頁面存檔備份,存於互聯網檔案館) Community around standard Eiffel.
- eiffelzone.com Includes a comprehensive Eiffel Software Directory
- Cetus Eiffel Page
- Eiffel for .NET
- Eiffel: the Language(頁面存檔備份,存於互聯網檔案館) subset