Eiffel 引介 Part I,II
来源:互联网 发布:nginx搭建网站 编辑:程序博客网 时间:2024/06/08 07:48
Eiffel Introduction
Eiffel 引介
Rensselaer, 2000
James C. McKim, Jr, Rensselaer at Hartford
K ][ N G of @ R K 译
[译者的话:本文译自一个介绍 Eiffel 的提纲,对 Eiffel 最最最……基本的语法作了非常简略的介绍。当然 Eiffel 的内容远不止于此。事实上,Eiffel 不只是一门优秀的面向对象语言,更像是一套设计精良的面向对象开发系统,虽然不是主流开发语言,但确有其独到的精妙之处和技术亮点(比如 Design by Contract(DbC),面向对象概念的表述方式,等等)。特别是 DbC 受到主流领域的关注。C++的assertion,Java 中的 assert 以及 iContract,都可视为 DbC 的体现和实现方式。]
[译注:本译文中出现的术语,以使用原文为优先。一些术语的译文为译者自己斟酌的结果,不一定完全准确或者妥当。欢迎批评指正。]
1. 为什么用Eiffel?
1.1 为什么用Eiffel?
l Eiffel是一种非常简单的语言。类似于 Pascal,但关键字比 Pascal 少,读起来好像伪码。
l 我们正是想要/需要一种面向对象语言。Booch说:“Eiffel 是市面上设计得最好的面向对象语言。(Eiffel is the best designed OO language on the market.)”
l 允许以一种既直接又合理的方式来对类别(classes)或模块(modules)单独进行编译及测试。
l Eiffel是一种纯面向对象语言,以非常直截了当的方式支持面向对象概念。
l 与任何其它商用语言相比,Eiffel拥有更多的面向对象特征。比如, 静态型别系统(Static Typing)、多重继承(Multiple inheritance)、泛型(Genericity)、断言(Assertions)。
l 简而言之,如果是要学习有关面向对象的知识,Eiffel是最佳的学习工具!
1.2 为什么没用Eiffel?
l Eiffel 仍未在商业应用中得到广泛运用。
l 对于大多数实现而言,编译速度慢。
2. Eiffel 的语法以及控制结构
2.1 Eiffel 的控制结构
2.1.1 Eiffel 只有一种循环结构
from
.... -- 在这里设置初始条件
.... -- 可以写任意多行
until
condition
loop
.... -- 这里是循环体
.... -- 可以写任意多行
end
2.1.2 循环结构示例
sum := 0
from
i := 1
until
i > 10
loop
sum := sum + i
i := i + 1
end
请注意,在本例的情形中,你必须手工递增循环变量。你有时也许会忘记这样做。
2.1.3 分支结构
if cond1 then
...
...
elseif cond2 then
...
...
else
...
...
end
代码中可以有任意多个 elseif,也可以什么都没有。Else子句也是可选的。但是必须有结束语句 end。
2.1.4 多分支结构
inspect expression
when const1 then
...
...
when const2 then
...
...
else
...
...
end
2.1.5 多分支结构示例
inspect ch
when ‘a’..‘z’, ‘A’..’Z’ then
-- 处理字母
when ‘0’..‘9’ then
-- 处理数字
when ‘.’
-- 处理以 '.' 结束的情况
else
-- 缺省动作
end
- Eiffel 引介 Part I,II
- Eiffel 引介 Part IV
- Eiffel 引介 Part V
- Eiffel 引介 Part III
- Eiffel 引介 Part IV (1)
- Eiffel 引介 Part V (1)
- Eiffel 引介 Part V (2)
- Eiffel
- Windows Presentation Foundation Introduction(II) - User Interfaces Part I
- Part II
- Part I
- Index Block Dump: Block Header Part II and Read Consistency (I Can’t Read)
- Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition) 阅读笔记(Part I & II)
- 机器学习笔记(PART II)模型的评估和选择(I)
- Part II RCP 举例
- dotNet Threading, Part II
- PART II SYSTEMS PROGRAMMING
- selectAll—part II
- Eiffel 引介 Part V (2)
- 多核系统中三种典型锁竞争的加速比分析
- 用Erlang Inets轻松实现Web服务器
- VisualFC - WTL/WinxGUI可视化开发环境
- 多核新观念-象使用内存一样使用CPU?
- Eiffel 引介 Part I,II
- 我为什么选择了Erlang?
- 启动Erlana: Erlang Analytics项目
- OpenMP创建线程中的锁及原子操作性能比较
- 欢迎使用 FreeCode for VS60/VS2005 Add-in
- Eiffel 引介 Part III
- Unix搭积木思想与Google Code Wiki
- 多核编程中的任务随机竞争模式的概率分析
- 从D语言看C++ Template语法