跳至內容

Eiffel

維基百科,自由的百科全書
Eiffel
Eiffel logo
編程範型面向對象, 基於類, 泛型, 並發
設計者Bertrand Meyer
實作者Eiffel Software
釋出時間1986年,​40年前​(1986)[1]
當前版本
  • 24.05(2024年6月14日;穩定版本)[2]
編輯維基數據鏈接
類型系統靜態
實作語言Eiffel
系統平台跨平台
作業系統FreeBSD, Linux, Mac OS X, OpenBSD, Solaris, Windows
許可證雙許可和企業許可
文件擴展名.e
網站www.eiffel.org
主要實作產品
EiffelStudio(英語:EiffelStudio), LibertyEiffel(英語:LibertyEiffel), SmartEiffel(英語:SmartEiffel), Visual Eiffel(英語:Visual Eiffel), Gobo Eiffel, "The Eiffel Compiler" tecomp
受影響於
Ada, Simula, Z(英語:Z notation)
影響語言
Ada 2012, Albatross, C#, D, Java, Racket, Ruby,[3] Sather(英語:Sather), Scala

Eiffel是一套物件導向程式語言,1985年由伯特蘭·邁耶所發明。文法類似Pascal ,並且將語言本身與軟件工程、和工具結合為一。Eiffel實現契約式設計(Design by Contract)的風格。

語法與語義

[編輯]

整體架構

[編輯]

一個Eiffel「系統」或「程序」是指一個「類」的集合。Eiffel系統有一個Cluster的概念。通過一個叫做ACE的外部組件描述類之間的組合關係的,Cluster可以是幾個類,或者幾個子Cluster,或者是它們的混合。但是Cluster不是Eiffel的語言構造(英語:Language construct),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來指定一個類作為整個應用的啟動。這個類的構造函數也就成為應用的起始點。

引用

[編輯]
  1. ^ Eiffel in a Nutshell. archive.eiffel.com. [24 August 2017]. (原始內容存檔於2019-01-13) (英語). 
  2. ^ EiffelStudio 24.05 is available!. 2024年6月14日 [2024年7月7日]. 
  3. ^ 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. 
  4. ^ EiffelStudio 21.11 is available!. Eiffel.org. 11 February 2022 [2022-05-06]. (原始內容存檔於2026-05-12). 

外部連結

[編輯]