Eiffel 引介 Part I,II

翻译文档 专栏收录该内容
74 篇文章 0 订阅

Eiffel Introduction

Eiffel 引介

 

Rensselaer, 2000

James C. McKim, Jr, Rensselaer at Hartford

 K ][ N G of @ R K 译

 

[译者的话:本文译自一个介绍 Eiffel 的提纲,对 Eiffel 最最最……基本的语法作了非常简略的介绍。当然 Eiffel 的内容远不止于此。事实上,Eiffel 不只是一门优秀的面向对象语言,更像是一套设计精良的面向对象开发系统,虽然不是主流开发语言,但确有其独到的精妙之处和技术亮点(比如 Design by ContractDbC),面向对象概念的表述方式,等等)。特别是 DbC 受到主流领域的关注。C++assertionJava 中的 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

 

(待续)

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
<p> <span style="font-size:14px;color:#337FE5;">【为什么学爬虫?】</span> </p> <p> <span style="font-size:14px;">       1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!</span> </p> <p> <span style="font-size:14px;">       2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站</span> </p> <p> <br /> </p> <span style="font-size:14px;color:#337FE5;">【课程设计】</span> <p class="ql-long-10663260"> <span> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 网络请求:模拟浏览器的行为从网上抓取数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 </li> <li class="" style="font-size:11pt;color:#494949;"> Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 </p> <p style="font-size:11pt;color:#494949;">   </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <br /> </p> <p> <br /> </p> <p> <span style="font-size:14px;background-color:#FFFFFF;color:#337FE5;">【课程服务】</span> </p> <p> <span style="font-size:14px;">专属付费社群+定期答疑</span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"><br /> </span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"></span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值