ImageVerifierCode 换一换
格式:PDF , 页数:194 ,大小:1.83MB ,
资源ID:704798      下载积分:10000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-704798.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ECMA 367-2006 Eiffel Analysis Design and Programming Language《Eiffel 分析、设计和程序设计语言第二版》.pdf)为本站会员(bowdiet140)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

ECMA 367-2006 Eiffel Analysis Design and Programming Language《Eiffel 分析、设计和程序设计语言第二版》.pdf

1、2nd Edition / June 2006Eiffel:Analysis, Design and Programming LanguageECMA-367Ecma International Rue du Rhne 114 CH-1204 Geneva T/F: +41 22 849 6000/01 www.ecma-international.orgStandardECMA-3672nd Edition - June 2006Eiffel:Analysis, Design and Programming LanguageBrief historyEiffel was originally

2、 designed, as a method of software construction and a notation to support that method, in 1985. The first implementation, from Eiffel Software (then Interactive Software Engineering Inc.), was commercially released in 1986. The principal designer of the first versions of the language was Bertrand Me

3、yer. Other people closely involved with the original definition included Jean-Marc Nerson. The language was originally described in Eiffel Software technical documents that were expanded to yield Meyers book Eiffel: The Language in 1990-1991. The two editions of Object-Oriented Software Construction

4、 (1988 and 1997) also served to describe the concepts. (For bibliographical references on the documents cited see 3.6.) As usage of Eiffel grew, other Eiffel implementations appeared, including Eiffel/S and Visual Eiffel from Object Tools, Germany, EiffelStudio and Eiffel Envision from Eiffel Softwa

5、re, and SmartEiffel from LORIA, France.Eiffel today is used throughout the world for industrial applications in banking and finance, defense and aerospace, health care, networking and telecommunications, computer-aided design, game programming, and many other application areas. Eiffel is particularl

6、y suited for mission-critical developments in which programmer productivity and product quality are essential. In addition, Eiffel is a popular medium for teaching programming and software engineering in universities.In 2002 Ecma International formed Technical Group 4 (Eiffel) of Technical Committee

7、 39 (Programming and Scripting Languages), known as TC39-TG4. The Eiffel: Analysis, Design and Programming Language Standard provides a precise definition of the language and ensures interoperability between implementations. The first of these benefits is of particular interest to implementors of Ei

8、ffel compilers and environments, who can rely on it as the reference on which to base their work; the second, to Eiffel users, for whom the Standard delivers a guarantee of compatibility between the products of different providers and of trust in the future of Eiffel.The starting point for this Stan

9、dard is material from the original and revised versions of the book Standard Eiffel (latest revision of Eiffel: The Language). The process of preparing the standard relied on automated tools to keep the corresponding elements identical in the Standard and the forthcoming revision of the book.The Fir

10、st Edition was completed in April of 2005 and approved by the General Assembly of ECMA in June of 2005. As a result, authors of major Eiffel compilers and tools have committed to supporting the language as described in the Standard; compilers are quickly progressing towards full compliance.The prese

11、nt Second Edition introduces no major change of substance but clarifies and corrects a number of points arising from the experience of using the First Edition and from the feedback of compiler writers and the user community. It was completed in April, 2006 and submitted both to ECMA and to the Inter

12、national Standards Organization (ISO), which has approved it as the ISO standard 25436. The text of this Second Edition is identical to the text of the ISO standard.To produce this Standard, TC39-TG4 conducted: 18 face-to- face meetings (15 up to the First Edition), most of them over three full days

13、; numerous phone meetings; and extensive technical correspondence (about 1500 email messages by June 2006).The members of the committee have been: Karine Arnout (Axa Rosenberg, Orinda, previously ETH, Zurich); ric Bezault (Axa Rosenberg, Orinda); Paul Cohen (Generic, Stockholm), Dominique Colnet (LO

14、RIA, Nancy); Mark Howard (Axa Rosenberg, Orinda); Alexander Kogtenkov (Eiffel Software, Moscow); Bertrand Meyer (Eiffel Software, Santa Barbara, and ETH, Zurich); Christine Mingins (Monash University, Melbourne); Roger Osmond (EMC, Boston); Emmanuel Stapf (Eiffel Software, Santa Barbara); Kim Waldn

15、(Generic, Stockholm). Observers having attended one or more of the meetings include Cyril Adrian (LORIA), Volkan Arslan (ETH), Paul Crismer (Groupe S, Brussels), Jocelyn Fiat (Eiffel Software, France), Randy John (Axa Rosenberg), Ian King (Eiffel Software), Andreas Leitner (ETH), Philippe Ribet (LOR

16、IA), Julian Rogers (Eiffel Software), Bernd Schoeller (ETH), David Schwartz (Axa Rosenberg), Zoran Simic (Axa Rosenberg), Raphael Simon (Eiffel Software), Olivier Zendra (LORIA). The committee acknowledges the contributions of many people including David Hollenberg, Marcel Satchell, Richard OKeefe a

17、nd numerous others listed in the acknowledgments of the book Standard Eiffel.The editor of the standard is Bertrand Meyer. Emmanuel Stapf is the convener of TG4 (succeeding Christine Mingins, 2002-2003) and was its secretary in 2005. Karine Arnout has been its secretary at all other times.The final

18、version of the First Edition was prepared by ric Bezault, Mark Howard, Alexander Kogtenkov, Bertrand Meyer and Emmanuel Stapf, the final version of the Second Edition by Bertrand Meyer and Emmanuel Stapf.This Ecma Standard has been adopted by the General Assembly of June 2006.Table of contents- vii

19、-Table of contents1 Scope 11.1 Overview 11.2 “The Standard” 11.3 Aspects covered 11.4 Aspects not covered 12 Conformance 22.1 Definition 22.2 Compatibility and non-default options 22.3 Departure from the Standard 23 Normative references 23.1 Earlier Eiffel language specifications 23.2 Eiffel Kernel

20、Library 23.3 Floating point number representation 33.4 Character set: Unicode 33.5 Character set: ASCII 33.6 Phonetic alphabet 34 Definitions 35 Notational conventions 35.1 Standard elements 35.2 Normative elements 35.3 Rules on definitions 45.4 Use of defined terms 45.5 Unfolded forms 55.6 Language

21、 description 55.7 Validity: “if and only if” rules 56 Acronyms and abbreviations 56.1 Name of the language 56.2 Pronunciation 57 General description 57.1 Design principles 57.2 Object-oriented design 67.3 Classes 77.4 Types 10- viii -7.5 Assertions 117.6 Exceptions 147.7 Genericity 157.8 Inheritance

22、 167.9 Polymorphism and dynamic binding 187.10 Combining genericity and inheritance 207.11 Deferred classes 217.12 Tuples and agents 227.13 Type- and void-safety 237.14 Putting a system together 248 Language specification 248.1 General organization 248.2 Syntax, validity and semantics 258.2.1 Defini

23、tion: Syntax, BNF-E 258.2.2 Definition: Component, construct, specimen 258.2.3 Construct Specimen convention 258.2.4 Construct Name convention 258.2.5 Definition: Terminal, non-terminal, token 258.2.6 Definition: Production 268.2.7 Kinds of production 268.2.8 Definition: Aggregate production 268.2.9

24、 Definition: Choice production 268.2.10 Definition: Repetition production, separator 268.2.11 Basic syntax description rule 278.2.12 Definition: Non-production syntax rule 278.2.13 Textual conventions 278.2.14 Definition: Validity constraint 288.2.15 Definition: Valid 288.2.16 Validity: General Vali

25、dity rule 288.2.17 Definition: Semantics 288.2.18 Definition: Execution terminology 288.2.19 Semantics: Case Insensitivity principle 298.2.20 Definition: Upper name, lower name 298.2.21 Syntax (non-production): Semicolon Optionality rule 298.3 The architecture of Eiffel software 308.3.1 Definition:

26、Cluster, subcluster, contains directly, contains 308.3.2 Definition: Terminal cluster, internal cluster 308.3.3 Definition: Universe 318.3.4 Syntax : Class names 318.3.5 Validity: Class Name rule 318.3.6 Semantics: Class name semantics 318.3.7 Definition: System, root type name, root procedure name

27、318.3.8 Definition: Type dependency 318.3.9 Validity: Root Type rule 32- ix -8.3.10 Validity: Root Procedure rule 328.3.11 Definition: Root type, root procedure, root class 338.3.12 Semantics: System execution 338.4 Classes 338.4.1 Definition: Current class 338.4.2 Syntax : Class declarations 338.4.

28、3 Syntax : Notes 338.4.4 Semantics: Notes semantics 348.4.5 Syntax : Class headers 348.4.6 Validity: Class Header rule 348.4.7 Definition: Expanded, frozen, deferred, effective class 348.4.8 Syntax : Obsolete marks 358.4.9 Semantics: Obsolete semantics 358.5 Features 358.5.1 Definition: Inherited, i

29、mmediate; origin; redeclaration; introduce 358.5.2 Syntax : Feature parts 368.5.3 Feature categories: overview 368.5.4 Syntax : Feature declarations 368.5.5 Syntax : New feature lists 378.5.6 Syntax : Feature bodies 378.5.7 Validity: Feature Body rule 378.5.8 Definition: Variable attribute 388.5.9 D

30、efinition: Constant attribute 388.5.10 Definition: Routine, function, procedure 388.5.11 Definition: Command, query 388.5.12 Definition: Signature, argument signature of a feature 388.5.13 Feature principle 398.5.14 Syntax : Feature names 398.5.15 Syntax (non-production): Alias Syntax rule 398.5.16

31、Definition: Operator feature, bracket feature, identifier-only 408.5.17 Definition: Identifier of a feature name 408.5.18 Validity: Feature Identifier principle 408.5.19 Definition: Same feature name, same operator, same alias 408.5.20 Syntax : Operators 418.5.21 Syntax : Assigner marks 418.5.22 Val

32、idity: Assigner Command rule 418.5.23 Definition: Synonym 428.5.24 Definition: Unfolded form of a possibly multiple declaration 428.5.25 Validity: Feature Declaration rule 438.5.26 Validity: Alias Validity rule 438.6 The inheritance relation 448.6.1 Syntax : Inheritance parts 448.6.2 Syntax (non-pro

33、duction): Feature adaptation rule 458.6.3 Definition: Parent part for a type, for a class 458.6.4 Validity: Class ANY rule 45- x -8.6.5 Validity: Universal Conformance principle 458.6.6 Definition: Unfolded inheritance part of a class 458.6.7 Definition: Multiple, single inheritance 468.6.8 Definiti

34、on: Inherit, heir, parent 468.6.9 Definition: Conforming, non-conforming parent 468.6.10 Definition: Ancestor types of a type, of a class 468.6.11 Definition: Ancestor, descendant 468.6.12 Definition: Proper ancestor, proper descendant 478.6.13 Validity: Parent rule 478.6.14 Syntax : Rename clauses

35、478.6.15 Validity: Rename Clause rule 488.6.16 Semantics: Renaming principle 488.6.17 Definition: Final name, extended final name, final name set 488.6.18 Definition: Inherited name 498.6.19 Definition: Declaration for a feature 498.7 Clients and exports 498.7.1 Definition: Client relation between c

36、lasses and types 498.7.2 Definition: Client relation between classes 498.7.3 Definition: Supplier 508.7.4 Definition: Simple client 508.7.5 Definition: Expanded client 508.7.6 Definition: Generic client, generic supplier 508.7.7 Definition: Indirect client 508.7.8 Definition: Client set of a Clients

37、 part 508.7.9 Syntax : Clients 518.7.10 Syntax : Export adaptation 518.7.11 Validity: Export List rule 518.7.12 Definition: Client set of a feature 528.7.13 Definition: Available for call, available 528.7.14 Definition: Exported, selectively available, secret 528.7.15 Definition: Secret, public prop

38、erty 538.7.16 Definition: Incremental contract view, short form 538.7.17 Definition: Contract view, flat-short form 548.8 Routines 548.8.1 Definition: Formal argument, actual argument 548.8.2 Syntax : Formal argument and entity declarations 558.8.3 Validity: Formal Argument rule 558.8.4 Validity: En

39、tity Declaration rule 558.8.5 Syntax : Routine bodies 558.8.6 Definition: Once routine, once procedure, once function 558.8.7 Syntax : Local variable declarations 558.8.8 Validity: Local Variable rule 568.8.9 Definition: Local variable 568.8.10 Syntax : Instructions 568.9 Correctness and contracts 5

40、78.9.1 Syntax : Assertions 57- xi -8.9.2 Syntax (non-production): Assertion Syntax rule 578.9.3 Definition: Precondition, postcondition, invariant 578.9.4 Definition: Contract, subcontract 588.9.5 Validity: Precondition Export rule 588.9.6 Definition: Availability of an assertion clause 588.9.7 Synt

41、ax : “Old” postcondition expressions 588.9.8 Validity: Old Expression rule 598.9.9 Semantics: Old Expression Semantics, associated variable, associated exception marker 598.9.10 Semantics: Associated Variable Semantics 608.9.11 Syntax : “Only” postcondition clauses 608.9.12 Validity: Only Clause rul

42、e 608.9.13 Definition: Unfolded feature list of an Only clause 608.9.14 Definition: Unfolded Only clause 618.9.15 Definition: Hoare triple notation (total correctness) 618.9.16 Semantics: Class consistency 618.9.17 Syntax : Check instructions 628.9.18 Definition: Check-correct 628.9.19 Syntax : Vari

43、ants 628.9.20 Validity: Variant Expression rule 628.9.21 Definition: Loop invariant and variant 628.9.22 Definition: Loop-correct 628.9.23 Definition: Correctness (class) 628.9.24 Definition: Local unfolded form of an assertion 628.9.25 Semantics: Evaluation of an assertion 638.9.26 Semantics: Asser

44、tion monitoring 638.9.27 Semantics: Assertion violation 638.9.28 Semantics: Assertion semantics 648.9.29 Semantics: Assertion monitoring levels 648.10 Feature adaptation 648.10.1 Definition: Redeclare, redeclaration 648.10.2 Definition: Unfolded form of an assertion 658.10.3 Definition: Assertion ex

45、tensions 658.10.4 Definition: Covariance-aware form of an inherited assertion 658.10.5 Definition: Combined precondition, postcondition 668.10.6 Definition: Inherited as effective, inherited as deferred 668.10.7 Definition: Effect, effecting 668.10.8 Definition: Redefine, redefinition 668.10.9 Defin

46、ition: Name clash 678.10.10 Syntax : Precursor 678.10.11 Definition: Relative unfolded form of a Precursor 678.10.12 Validity: Precursor rule 678.10.13 Definition: Unfolded form of a Precursor 688.10.14 Semantics: Precursor semantics 688.10.15 Syntax : Redefinition 688.10.16 Validity: Redefine Subcl

47、ause rule 68- xii -8.10.17 Semantics: Redefinition semantics 688.10.18 Syntax : Undefine clauses 688.10.19 Validity: Undefine Subclause rule 688.10.20 Semantics: Undefinition semantics 698.10.21 Definition: Effective, deferred feature 698.10.22 Definition: Effecting 698.10.23 Deferred Class property

48、 698.10.24 Effective Class property 698.10.25 Definition: Origin, seed 698.10.26 Validity: Redeclaration rule 708.10.27 Definition: Precursor (joined features) 718.10.28 Validity: Join rule 718.10.29 Semantics: Join Semantics rule 728.11 Types 728.11.1 Syntax : Types 728.11.2 Semantics: Direct insta

49、nces and values of a type 738.11.3 Semantics: Instances of a type 738.11.4 Semantics: Instance principle 738.11.5 Definition: Instances, direct instances of a class 738.11.6 Base principle; base class, base type, based 738.11.7 Base rule 748.11.8 Validity: Class Type rule 748.11.9 Semantics: Type Semantics rule 748.11.10 Definition: Base class and base type of an expression 748.11.11 Semantics: Non-generic class type semantics 748.11.12 Definition: Expanded type, reference type 748.11.13 Definition: Basic type 758.11.14 Definition: Anchor, anchored type, anchored entity 758.11.15 Def

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1