ISO/IEC INTERNATIONAL STANDARD 25436 First edition 2006-12-01 Information technology - Eiffel: Analysis, Design and Programming Language Technologies de I'information Eiffel: Langage d'analyse, conception et programmation Reference number ISO/IEC 25436:2006(E) IEC Iso @ISO/IEC2006 ISO/IEC 25436:2006(E) PDF disclaimer This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The Iso Central Secretariat accepts no liability in this area. Adobe is a trademark of Adobe Systems Incorporated. Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by IsO member bodies. In ? ISO/IEC2006 All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from either isO at the address below or IsO's member body in the country of the requester. ISO copyright office Case postale 56 . CH-1211 Geneva 20 Tel. + 41 22 749 01 11 Fax + 41 22 749 09 47 E-mail
[email protected] Web www.iso.org Published in Switzerland @ ISO/IEC 2006 - All rights reserved ISO/IEC 25436:2006(E) Contents Page 1 Scope... 1.1 Overview ... 1.2 "The Standard" 1.3 Aspects covered 1.4 Aspects not covered 2 Conformance 2.1 Definition. 2.2 Compatibility and non-default options 2.3 Departure from the Standard .... 3 Normative references . 3.1 Earlier Eiffel language specifications 3.2 Eiffel Kernel Library .... 3.3 3.4 Character set: Unicode .... 3.5 Character set: ASCll 3.6 Phonetic alphabet .. 4 Definitions . 5 Notational conventions . 5.1 Standard elements ....... 5.2 Normativeelements 5.3 Rules on definitions 5.4 5.5 Unfolded forms 5.6 Language description 5.7 Validity: “if and only if" rules . 6 6.1 Name of the language .. 6.2 Pronounciation..... 7 General description .. 7.1 Design principles........ 7.2 Object-oriented design 7.3 Classes.. 7.4 7.5 Assertions 7.6 Exceptions... 7.7 Genericity... 7.8 Inheritance.. 7.9 Polymorphism and dynamic binding...... 7.10 Combining genericity and inheritance 7.11 Deferred ciasses .... 19 7.12 Tuples and agents. 21 7.13 Type- and void-safety..... 22 7.14 Putting a system together 22 Language specification. 23 8.1 General organization .. 8.2 Syntax, validity and semantics.. 23 8.2.1 Definition: Syntax, BNF-E.... 23 8.2.2 Definition: Component, construct, specimen .... 8.2.3 Construct Specimen convention...... 24 8.2.4 Construct Name convention....... hizationforStanda tion All rights reserved ii ISO/IEC 25436:2006(E) 8.2.5 Definition: Terminal, non-terminal, token . 24 8.2.6 Definition: Production ... 24 8.2.7 Kinds of production... 25 8.2.8 Definition: Aggregate production.. 25 8.2.9 Definition: Choice production ... 8.2.10 Definition: Repetition production, separator 8.2.11 Basic syntax description rule ... .25 8.2.12 Definition: Non-production syntax rule .. 8.2.13 Textual conventions .. .26 8.2.14 Definition: Validity constraint.... 27 8.2.15 Definition: Valid .. 27 8.2.16 Validity: General Validity rule .. 27 8.2.17 Definition: Semantics... .27 8.2.18 Definition: Execution terminology. .27 8.2.19 Semantics: Case Insensitivity principle ....... 8.2.20 Definition: Upper name, lower name .. .28 8.2.21 Syntax (non-production): Semicolon Optionality rule 8.3 The architecture of Eiffel software ... .29 8.3.1 Definition: Cluster, subcluster, contains directly, contains . .29 8.3.2 Definition: Terminal cluster, internal cluster .29 8.3.3 Definition: Universe ... ..29 8.3.4 Syntax: