Eiffel

Eiffel
Eiffel logo
编程范型面向对象, 基于类, 泛型, 并发
設計者Bertrand Meyer
實作者Eiffel Software
发行时间1986年,​38年前​(1986[1]
当前版本
  • 22.05 (2022年5月31日;穩定版本)[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 22.05 is available!. [2022年12月19日]. 
  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. 

外部連結

  • 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
应用程序接口
文件系统(磁带)
  • 高级智能磁带英语Advanced Intelligent Tape
  • DDS英语Digital Data Storage
  • DLT英语Digital Linear Tape
  • Super DLT英语Digital Linear Tape
  • 全息通用光盘
  • Linear Tape-Open英语Linear Tape-Open(Ultrium-1)
  • VXA英语VXA
文件系统(磁盘)
图形
编程语言
无线链路接口
其他
Ecma標準列表(1961年 - 至今)

范型
过程式
面向对象
多范型
函数式
逻辑式
脚本语言
动态语言
Shell语言
ECMA-262
特定平台
.NET
JVM
特定领域
科学计算
GPU计算
  • Cg/HLSL
  • GLSL
  • Brook英语BrookGPU
  • OpenCL
  • CUDA/PTX英语Parallel Thread Execution
  • Futhark
  • SPIR-V英语Standard Portable Intermediate Representation
数据查询
可视化
传媒设计
 
其它
  • 分类 目录
  • 列表级条目 列表
  • 历史
  • 比较英语Comparison of programming languages
  • 时间线英语Timeline of programming languages