دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [3 ed.]
نویسندگان: Bertrand Meyer
سری:
ناشر:
سال نشر:
تعداد صفحات: 1394
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 13 Mb
در صورت تبدیل فایل کتاب Eiffel : The Language به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب ایفل: زبان نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Preface:Meeting the challenge of software quality (in progress) Preface to the third edition About the status of Eiffel About the language description Contents 1.1 OVERVIEW 1.2 GENERAL PROPERTIES 1.3 THE SOFTWARE PROCESS IN EIFFEL Clusters and the cluster model Seamlessness and reversibility Generalization and reuse Constant availability Compilation technology Quality and functionality 1.4 HELLO WORLD 1.5 THE STATIC PICTURE: SYSTEM ORGANIZATION Systems Classes Class relations The global inheritance structure Clusters External software 1.6 THE DYNAMIC STRUCTURE: EXECUTION MODEL Objects, fields, values and references Features A simple class Creating and initializing objects Entities Calls Infix and prefix notation Type declaration Type categories Basic operations Deep operations and persistence Memory management Information hiding and the call rule Execution scenario Abstraction 1.7 GENERICITY 1.8 DESIGN BY CONTRACT, ASSERTIONS, EXCEPTIONS Design by Contract basics Expressing assertions Using assertions for built-in reliability Run-time assertion monitoring The short form of a class Exception handling Other applications of Design by Contract 1.9 THE INHERITANCE MECHANISM Basic inheritance structure Redefinition Polymorphism Dynamic binding Deferred features and classes Applications of deferred classes Structural property classes Multiple inheritance and feature renaming Inheritance and contracts Join and uneffecting Changing the export status Flat and flat-short forms Repeated inheritance and selection Constrained genericity Assignment attempt Covariance and anchored declarations 1.10 OTHER IMPORTANT MECHANISMS Once routines, shared objects, smart initialization and on-demand execution Constant attributes Instructions Lexical conventions 1.11 CONCURRENCY AND FURTHER DEVELOPMENTS SCOOP Other developments 2 2 Syntax, validity and semantics 2.1 OVERVIEW 2.2 SYNTAX: COMPONENTS, SPECIMENS, CONSTRUCTS Syntax, BNF-E Component, construct, specimen Construct Specimen convention Construct Name convention 2.3 TERMINALS, NON-TERMINALS AND TOKENS Terminal, non-terminal, token 2.4 THE LEXICAL LEVEL 2.5 PRODUCTIONS Production Kinds of production Aggregate productions Aggregate production Choice productions Choice production Repetition productions Repetition production, separator Using recursive productions One production per non-terminal Basic syntax description rule Non-production syntax rules Non-production syntax rule 2.6 REPRESENTING TERMINALS Textual conventions 2.7 VALIDITY Validity constraint Valid 2.8 INTERPRETING THE CONSTRAINTS 2.9 SEMANTICS Semantics 2.10 CORRECTNESS 2.11 TWO-TIER DEFINITION AND UNFOLDED FORMS 2.12 THE CONTEXT OF EXECUTING SYSTEMS Execution terminology 2.13 TEXTUAL CONVENTIONS Upper name, lower name Syntax (non-production): Semicolon Optionality rule 3 3 The architecture of Eiffel software 3.1 OVERVIEW 3.2 CLASSES 3.3 CLASS TEXTS AND CLASS NAMES 3.4 CLUSTERS Cluster, subcluster, contains directly, contains Terminal cluster, internal cluster 3.5 SYSTEMS Universe System, root type name, root procedure name Type dependency Root type, root procedure, root class 4 4 Classes 4.1 OVERVIEW 4.2 OBJECTS 4.3 FEATURES 4.4 USE OF CLASSES 4.5 THE CURRENT CLASS Current class 4.6 CLASS TEXT STRUCTURE 4.7 PARTS OF A CLASS TEXT 4.8 ANNOTATING A CLASS 4.9 CLASS HEADER Deferred classes Expanded classes Validity of a class header Expanded, frozen, deferred, effective class 4.10 FORMAL GENERIC PARAMETERS 4.11 OBSOLETE MARK 5 5 Features 5.1 OVERVIEW 5.2 THE ROLE OF FEATURES 5.3 FEATURE CATEGORIES 5.4 IMMEDIATE AND INHERITED FEATURES Inherited, immediate; origin; redeclaration; introduce 5.5 FEATURES PART: EXAMPLE 5.6 GRAPHICAL REPRESENTATION 5.7 FEATURES PART: SYNTAX 5.8 FORMS OF FEATURE Feature categories: overview 5.9 FEATURE DECLARATIONS: EXAMPLES 5.10 FEATURE DECLARATIONS: SYNTAX 5.11 FEATURE BODIES 5.12 HOW TO RECOGNIZE FEATURES Variable attribute Constant attribute Routine, function, procedure Command, query 5.13 THE SIGNATURE OF A FEATURE Signature, argument signature of a feature 5.14 FEATURE NAME Feature principle Syntax (non-production): Alias Syntax rule Operator feature, bracket feature, identifier-only Identifier of a feature name Same feature name, same operator, same alias 5.15 OPERATOR FEATURES 5.16 ASSIGNER PROCEDURES 5.17 BRACKET FEATURE 5.18 SYNONYMS AND MULTIPLE DECLARATION Synonym Unfolded form of a possibly multiple declaration 5.19 VALIDITY OF FEATURE DECLARATIONS 5.20 SCOPE OF NAMES 5.21 OBSOLETE FEATURES 5.22 NO IN-CLASS OVERLOADING 6 6 The inheritance relation 6.1 OVERVIEW 6.2 AN INHERITANCE PART 6.3 FORM OF THE INHERITANCE PART Syntax (non-production): Feature adaptation Parent part for a type, for a class 6.4 GRAPHICAL CONVENTION 6.5 ANY Unfolded Inheritance Part of a class 6.6 NONE 6.7 RELATIONS INDUCED BY INHERITANCE Multiple, single inheritance Inherit, heir, parent Conforming, non-conforming parent Ancestor types of a type, of a class Ancestor, descendant Proper ancestor, proper descendant 6.6 PROHIBITING CYCLES 6.7 ADAPTING INHERITED FEATURES 6.8 NON-CONFORMING INHERITANCE 6.9 RENAMING 6.10 FEATURES AND THEIR NAMES Final name, extended final name, final name set Inherited name Declaration for a feature 6.11 INDEPENDENCE OF INHERITANCE AND EXPANSION 7 7 Clients and exports 7.1 OVERVIEW 7.2 ENTITIES 7.3 CONVENTIONS Client relation between classes and types Client relation between classes Supplier 7.4 SIMPLE CLIENTS Simple client 7.5 EXPANDED CLIENTS Expanded client 7.6 GENERIC CLIENTS Generic client, generic supplier 7.7 INDIRECT CLIENTS Indirect client 7.8 EXPORT CONTROLS AND INFORMATION HIDING Restricting exports Exporting to oneself Exporting to descendants Making a feature secret Adapting the export status of inherited features Expanding or restricting the export status The export status of features Client set of a Clients part Rules on setting the export status Client set of a feature Available for call, available Exported, selectively available, secret 7.9 -DOCUMENTING THE CLIENT INTERFACE OF A CLASS Selecting features Contract views Secret, public Incremental contract view, short form Contract view, flat-short form 8 8 Routines 8.1 OVERVIEW 8.2 ROUTINE DECLARATION 8.3 FORMAL ARGUMENTS Formal argument, actual argument 8.4 USING A VARIABLE NUMBER OF ARGUMENTS 8.5 ROUTINE BODY Once routine, once procedure, once function 8.6 LOCAL VARIABLES AND RESULT Local variable 8.7 EXTERNALS 8.8 TYPES OF INSTRUCTIONS 9 9 Correctness and contracts 9.1 OVERVIEW 9.2 WHY ASSERTIONS? 9.3 GRAPHICAL CONVENTION 9.4 USES OF ASSERTIONS 9.5 FORM OF ASSERTIONS Syntax (non-production): Assertion Syntax rule Precondition, postcondition, invariant 9.6 UNFOLDING ASSERTIONS UNDER INHERITANCE 9.7 ASSERTIONS ON INDIVIDUAL FEATURES Preconditions and postconditions The contract of a routine Contract, subcontract Constraints on routine assertions Availability of an assertion clause “Old” expression “Only” clause Unfolded feature list of an Only clause Unfolded Only clause 9.8 CLASS INVARIANTS 9.9 THE CONSISTENCY OF A CLASS Hoare triple notation (total correctness) 9.10 CHECK INSTRUCTIONS Check-correct 9.11 LOOP INVARIANTS AND VARIANTS Loop invariant and variant Loop-correct 9.12 THE CORRECTNESS OF A CLASS Correctness (class) 9.13 RULES OF RUN-TIME ASSERTION MONITORING Associated boolean expression Local unfolded form of an assertion Assertion monitoring Levels of assertion monitoring Invariant and qualified calls 10 10 Feature adaptation 10.1 OVERVIEW 10.2 TERMINOLOGY: REDECLARATION, REDEFINITION, EFFECTING 10.3 REDECLARING INHERITED FEATURES: WHY AND HOW Redeclare, redeclaration 10.4 FEATURE ADAPTATION CLAUSES 10.5 WHY REDEFINE? 10.6 REDEFINITION EXAMPLES 10.7 THE REDEFINITION CLAUSE 10.8 REDEFINITION IN THE SOFTWARE PROCESS 10.9 CHANGING THE SIGNATURE 10.10 THE NEED FOR ANCHORED DECLARATIONS 10.11 DEFERRED FEATURES 10.12 DEFERRED CLASSES FOR DESCRIBING ABSTRACTIONS 10.13 DEFERRED CLASSES FOR SYSTEM DESIGN AND ANALYSIS 10.14 EFFECTING A DEFERRED FEATURE 10.15 PARTIALLY DEFERRED CLASSES AND PROGRAMMED ITERATION 10.16 REDECLARATION AND TYPING 10.17 REDECLARATION AND ASSERTIONS 10.18 RULES ON INHERITED ASSERTIONS Unfolded form of an assertion Assertion extensions Covariance-aware form of an assertion extension Combined precondition, postcondition 10.19 UNDEFINING A FEATURE Inherited as effective, inherited as deferred 10.20 REDEFINITION AND EFFECTING Effect, effecting Redefine, redefinition 10.21 THE JOIN MECHANISM 10.22 MERGING EFFECTIVE FEATURES 10.23 NAME CLASHES Name clash 10.24 ADDING TO INHERITED BEHAVIOR: PRECURSOR The need for a precursor mechanism Precursor basics and examples Choosing between multiple precursors Precursor specification Relative unfolded form of a Precursor Unfolded form of a Precursor 10.25 REDEFINITION AND UNDEFINITION RULES 10.26 DEFERRED AND EFFECTIVE FEATURES AND CLASSES Effective, deferred feature Effecting Deferred class property Effective class property 10.27 ORIGIN AND SEED Origin, seed 10.28 REDECLARATION RULES 10.29 RULES ON JOINING FEATURES Precursor (joined features) Transposition to a class or type Transposition Unfolded redeclaration 11 11 Types 11.1 OVERVIEW 11.2 THE ROLE OF TYPES 11.3 WHERE TO USE TYPES 11.4 HOW TO DECLARE A TYPE 11.5 INSTANCES AND VALUES 11.6 INSTANCES OF A CLASS Instance, direct instance of a class 11.7 BASE CLASS, BASE TYPE AND TYPE SEMANTICS Base principle Base rule Base class and base type of an expression 11.8 CLASS TYPES WITHOUT GENERICITY 11.9 EXPANDED TYPES Role of expanded types Defining expanded types Expanded type, reference type Basic types Basic type 11.10 ANCHORED TYPES Anchor, anchored type, anchored entity Anchored examples Anchoring to Current Anchoring to an expanded or generic Avoiding anchor cycles Anchor set; cyclic anchor Types and classes involved in a type Validity and semantics of anchored types Deanchored form of a type 11.11 GUARANTEEING ATTACHMENT Attached, detachable 11.12 STAND-ALONE TYPES Stand-alone type 12 12 Genericity 12.1 OVERVIEW 12.2 GENERIC CLASSES 12.3 GENERIC CLASSES AND GENERIC DERIVATIONS Generic class; constrained, unconstrained Generic derivation, non-generic type 12.4 SELF-INITIALIZING FORMAL PARAMETERS Self-initializing formal parameter 12.5 CONSTRAINED AND UNCONSTRAINED GENERICITY Constraint, constraining types of a Formal_generic 12.6 CONSTRAINED GENERICITY 12.7 RULES ON CONSTRAINED GENERICITY Constraining creation features 12.8 CONSTRAINTS AND CREATION Generic-creation-ready type 12.9 RECURSIVE GENERIC CONSTRAINTS 12.10 SEMANTICS OF GENERIC TYPES Base type of a single-constrained formal generic Base type of an unconstrained formal generic Reference or expanded status of a formal generic 12.11 CURRENT TYPE, FEATURES OF A TYPE Current type Features of a type 12.12 APPLYING GENERICITY TO TYPES Generic substitution Generic Type Adaptation rule 12.13 THE CASE OF MULTIPLE CONSTRAINTS Generically constrained feature name Base type of a multi-constraint formal generic type 13 13 Tuples 13.1 OVERVIEW 13.2 TUPLES IN A NUTSHELL 13.3 USING TUPLE TYPES AND TUPLES Type sequence of a tuple type Value sequences associated with a tuple type 13.4 ANONYMOUS CLASSES 13.5 CONFORMANCE ==== TO BE REWRITTEN 13.6 MULTIPLE RESULTS AND VARIABLE NUMBERS OF ARGUMENTS Emulating multiple results Emulating a variable number of arguments 13.7 TUPLES AS ARRAYS ==== TO BE REWRITTEN 14 14 Conformance 14.1 OVERVIEW 14.2 CONVERTIBILITY AND COMPATIBILITY Compatibility between types Compatibility between expressions Expression conformance 14.3 APPLICATIONS OF CONFORMANCE 14.4 EXPRESSION AND SIGNATURE CONFORMANCE Covariant argument 14.5 DIRECT AND INDIRECT CONFORMANCE Conformance path 14.6 CONFORMANCE TO A NON-GENERIC REFERENCE TYPE 14.7 GENERICALLY DERIVED REFERENCE TYPES 14.8 FORMAL GENERIC PARAMETER CONFORMANCE 14.9 EXPANDED TYPE CONFORMANCE 14.10 TUPLE TYPE CONFORMANCE 14.11 ANCHORED TYPE CONFORMANCE 15 15 Convertibility Conversion procedure, conversion type Conversion query, conversion feature Converting to a class Converting to and from a type Converting “through” Explicit conversion Statically satisfied precondition 16 Repeated inheritance 16.1 OVERVIEW 16.2 CASES OF REPEATED INHERITANCE Repeated inheritance, ancestor, descendant 16.3 THE TWO QUESTIONS OF REPEATED INHERITANCE 16.4 SHARING AND REPLICATION Sharing, replication 16.5 THE CASE OF REDECLARED FEATURES 16.6 THE CASE OF ATTRIBUTES 16.7 THE CASE OF CONFLICTING GENERIC DERIVATIONS 16.8 KEEPING THE ORIGINAL VERSION OF A REDEFINED FEATURE 16.9 USING REPLICATION: COUNTERS AND ITERATION 16.10 THE SEMANTICS OF REPLICATION 16.11 RETAINING VICTORS FROM ALTERNATIVE BRANCHES 16.12 THE NEED FOR SELECT 16.13 THE REPEATED INHERITANCE CONSISTENCY CONSTRAINT Version Multiple versions Dynamic binding version 16.14 THE INHERITED FEATURES OF A CLASS Inherited features Precursor 17 17 Control structures 17.1 OVERVIEW 17.2 COMPOUND 17.3 CONDITIONAL Secondary part Prevailing immediately 17.4 MULTI-BRANCH CHOICE Inspect expression Interval Unfolded form of a multi-branch Unfolded form of an interval Inspect values of a multi-branch 17.5 OBJECT TEST 17.6 USING SELECTION INSTRUCTIONS PROPERLY 17.7 LOOP Loop structure and properties Loop semantics Ensuring non-void references in a loop 17.8 THE DEBUG INSTRUCTION 18 18 Attributes 18.1 OVERVIEW 18.2 GRAPHICAL REPRESENTATION 18.3 VARIABLE ATTRIBUTES 18.4 ATTRIBUTES IN FULL FORM 18.5 CONSTANT ATTRIBUTES 18.6 CONSTANT ATTRIBUTES WITH MANIFEST VALUES 19 19 Objects, values and entities 19.1 OVERVIEW 19.2 OBJECTS AND THEIR TYPES 19.3 VALUES AND INSTANCES Reference, void, attached, attached to 19.4 BASIC TYPES 19.5 REFERENCE AND COPY SEMANTICS Object semantics 19.6 COMPOSITE OBJECTS AND THEIR FIELDS Non-basic class, non-basic type, field Subobject, composite object 19.7 REFERENCE ATOMICITY 19.8 EXPRESSIONS AND ENTITIES Entity, variable, read-only 19.9 SEMANTICS: EVALUATING AND INITIALIZING ENTITIES Self-initializing type Self-initializing variable Evaluation position, precedes Setter instruction Properly set variable Variable setting and its value Execution context 20 20 Creating objects 20.1 OVERVIEW 20.2 FORMS OF CREATION: AN OVERVIEW Creation operation 20.3 BASIC FORM OF CREATION INSTRUCTIONS 20.4 OMITTING THE CREATION PROCEDURE 20.5 CREATORS AND INHERITANCE 20.6 USING AN EXPLICIT TYPE 20.7 RESTRICTING CREATION AVAILABILITY 20.8 THE CASE OF EXPANDED TYPES 20.9 CREATING INSTANCES OF FORMAL GENERICS 20.10 PRECONDITIONS OF CREATION PROCEDURES 20.11 CREATION SYNTAX AND VALIDITY Unfolded Creators part of a class Creation procedures of a class Creation procedure property Creation procedures of a type Available for creation; general creation procedure Creation target, creation type Unfolded form of a creation instruction 20.12 CREATION SEMANTICS 20.13 REMOTE CREATION 20.14 CREATION EXPRESSIONS AND ANONYMOUS OBJECTS Properties of a creation expression 20.15 GARBAGE COLLECTION Garbage Collection, not enough memory available 21 21 Comparing and duplicating objects 21.1 OVERVIEW 21.2 COPYING AN OBJECT 21.3 EQUALITY EXPRESSIONS Object comparison features from ANY Copying and cloning features from ANY Deep equality, copying and cloning Effect of a copy operation Specification of default copy Tuning copy semantics 21.4 CLONING AN OBJECT Using cloning Twin Specification of default cloning Cloning, types and factories 21.5 DEEP COPYING AND CLONING 21.6 OBJECT EQUALITY 21.7 DEEP EQUALITY 22 22 Attaching values to entities 22.1 OVERVIEW 22.2 ROLE OF REATTACHMENT OPERATIONS Reattachment, source, target 22.3 FORMS OF UNCONDITIONAL REATTACHMENT 22.4 SYNTAX AND VALIDITY OF ASSIGNMENT 22.5 THE STATUS OF FORMAL ROUTINE ARGUMENTS 22.6 CONVERSIONS 22.7 SEMANTICS OF REATTACHMENT 22.8 AN EXAMPLE 22.9 ABOUT REATTACHMENT 22.10 EFFECT ON GENERIC PROGRAMMING 22.11 POLYMORPHISM Dynamic type Polymorphic expression; dynamic type and class sets 22.12 ASSIGNER CALL 22.13 SEMI-STRICT OPERATORS The notion of strictness The need for semi-strict operators More on strictness 22.14 CONDITIONAL REATTACHMENT Limitations of unconditional reattachment 22.15 MEMORY MANAGEMENT 22.16 SEMANTICS OF EQUALITY 23 23 Feature call 23.1 OVERVIEW 23.2 PARTS OF A CALL 23.3 USES OF CALLS 23.4 UNIFORM ACCESS 23.5 OPERATOR AND BRACKET FORMS 23.6 COMPLEX TARGETS 23.7 CALL SYNTAX Unqualified, qualified call 23.8 COMPONENTS OF A CALL Target of a call Target type of a call Feature of a call 23.9 NON-OBJECT CALLS Imported form of a Non_object_call 23.10 CLASS VALIDITY Export validity Argument validity Target validity and Void-Safe Eiffel Combining the rules Void-Unsafe 23.11 INTRODUCTION TO CALL SEMANTICS Target Object 23.12 DYNAMIC BINDING Dynamic feature of a call 23.13 THE IMPORTANCE OF BEING DYNAMIC 23.14 ONCE ROUTINES Once basics Once uses Predefined once keys Further once tuning Once routine semantics Freshness of a once routine call Latest applicable target and result of a non-fresh call 23.15 ATTRIBUTES AND EXTERNALS 23.16 THE MACHINERY OF EXECUTING CALLS Scheme for a routine call Current object and routine Naming the current object 23.17 PRECISE CALL SEMANTICS Rule for non-once routines General call semantics 23.18 CALLS AS EXPRESSIONS Type of a Call used as expression 24 24 Eradicating void calls 24.1 OVERVIEW 24.2 OVERALL SCHEME 24.3 THE OBJECT TEST Object-Test Local Conjunctive, disjunctive, implicative; Term, semistrict term Scope of an Object-Test Local 24.4 VOID TESTS Read-only void test Scope of a read-only void test 24.5 CERTIFIED ATTACHMENT PATTERNS Certified Attachment Pattern 24.6 ATTACHED EXPRESSIONS Attached expression 25 25 Typing-related properties 25.1 OVERVIEW Catcall 25.2 SYNTAX VARIANTS 25.3 BASIC CONCEPTS 25.4 25.5 SYSTEM-LEVEL VALIDITY 25.6 VIOLATING SYSTEM VALIDITY 25.7 NOTES ON THE TYPE POLICY 25.8 WHY DISTINGUISH? 25.9 A LOOK AT THE DYNAMIC CLASS SET 25.10 THE CALL VALIDITY RULE 25.11 CREATION VALIDITY (SYSTEM-LEVEL) 26 26 Exception handling 26.1 OVERVIEW 26.2 WHAT IS AN EXCEPTION? Failure, exception, trigger 26.3 EXCEPTION HANDLING POLICY 26.4 RESCUE CLAUSES AND ORGANIZED PANIC 26.5 THE DEFAULT RESCUE 26.6 RETRY INSTRUCTIONS AND RESUMPTION 26.7 SYSTEM FAILURE AND THE EXCEPTION HISTORY TABLE 26.8 SYNTAX AND VALIDITY OF THE EXCEPTION CONSTRUCTS 26.9 EXCEPTION CORRECTNESS Exception-correct 26.10 SEMANTICS OF EXCEPTION HANDLING Rescue block Type of an exception 26.11 EXCEPTION CORRECTNESS 26.12 FINE-TUNING THE MECHANISM Ignoring, continuing an exception 26.13 OVERVIEW 26.14 PLATFORM-DEPENDENT SIGNAL CODES 26.15 CLASS EXCEPTIONS 27 27 Agents, iteration and introspection 27.1 OVERVIEW 27.2 A QUICK PREVIEW 27.3 FROM CALLS TO AGENTS Feature calls and their operands Operands of a call Operand position Delaying calls Agents and their operands Construction time, call time 27.4 AGENT TYPES 27.5 CALL AGENTS All-closed agents Keeping operands open The brace convention Omitting the argument list A summary of the possibilities Syntactical forms for a call agent 27.6 USING AGENTS GUI programming: establishing a direct connection to the Business Model Integrating a function Iteration examples 27.7 TWO ADVANCED EXAMPLES Error processing without the mess Once per object 27.8 USING INLINE AGENTS 27.9 ACCESSING FEATURE PROPERTIES 27.10 THE BASE CLASS AND TYPE 27.11 AGENT SYNTAX Syntax of call agents Syntax of inline agents 27.12 AGENT VALIDITY Validity of call agents Target type of an call agent Validity of inline agents Associated feature of an inline agent 27.13 AGENT SEMANTICS Call-agent equivalent of an inline agent Call-agent equivalent of an inline agent Open and closed operands Open and closed operands Open and closed operand positions Type and value of an agent expression Type of an agent expression 28 28 Expressions 28.1 OVERVIEW 28.2 GENERAL FORM OF EXPRESSIONS 28.3 SUBEXPRESSIONS Subexpression, operand 28.4 PARENTHESIZED EXPRESSIONS 28.5 OPERATOR EXPRESSIONS Operator expression basics Operator expression syntax Precedence and Parenthesized Form Operator precedence levels Parenthesized Form of an expression Accounting for target conversion Target-converted form of a binary expression Operator expression validity and semantics 28.6 SEMISTRICT BOOLEAN OPERATORS Semistrict operators 28.7 BRACKET EXPRESSIONS 28.8 THE EQUIVALENT DOT FORM Equivalent Dot Form of an expression 28.9 BOOLEAN EXPRESSIONS 28.10 ENTITIES 28.11 THE TYPE OF AN EXPRESSION Type of an expression 28.12 EXPRESSIONS AND THE SEMICOLON 29 29 Constants 29.1 OVERVIEW 29.2 GENERAL FORM OF CONSTANTS Syntax (non-production): Sign Syntax rule Syntax (non-production): Character Syntax rule 29.3 FORCING A TYPE ON A CONSTANT 29.4 THE TYPE OF A CONSTANT Type of a manifest constant Manifest value of a constant 29.5 INTEGER CONSTANTS 29.6 REAL CONSTANTS 29.7 CHARACTER CONSTANTS 29.8 MANIFEST STRINGS Syntax (non-production): Line sequence Syntax (non-production): Manifest String rule Basic manifest strings Line_wrapping_part Verbatim strings Prefix, longest break prefix, left-aligned form Choosing between basic and verbatim manifest strings “Once” string expressions Run-time model for manifest strings 29.9 MANIFEST TUPLES 29.10 SEMANTICS OF CONSTANT ATTRIBUTES 30 30 Basic types 30.1 OVERVIEW 30.2 EXPANSION STATUS 30.3 BASIC CLASSES AND THEIR INHERITANCE STRUCTURE Basic types and their sized variants Sized variants of STRING 30.4 BOOLEANS 30.5 CHARACTERS 30.6 INTEGERS 30.7 REALS 30.8 ADDRESSES 31 31 Interfacing with C, C++ and other environments 31.1 OVERVIEW: THE COMPONENT COMBINATOR 31.2 WHAT EIFFEL CAN DO WITH THE REST OF THE WORLD 31.3 WHEN TO USE EXTERNAL SOFTWARE 31.4 REGISTERED LANGUAGES AND THE ROLE OF C 31.5 BASICS OF EXTERNAL ROUTINES 31.6 EXECUTING AN EXTERNAL CALL 31.7 ARGUMENT AND RESULT TRANSMISSION 31.8 PASSING THE ADDRESS OF AN EIFFEL FEATURE 31.9 SPECIAL INTERFACE SUBLANGUAGES 31.10 GENERAL SUBLANGUAGE MECHANISMS Specifying an external routine signature Specifying external files 31.11 THE C INTERFACE SUBLANGUAGE Syntax specification Specifying C code inline Controlling the Eiffel-C type correspondence 31.12 THE C++ INTERFACE SUBLANGUAGE The syntax specification Conditions on C++ features Processing C++ features Extra argument 31.13 WRAPPING C++ CLASSES: LEGACY++ The role of Legacy++ Calling Legacy++ Result of applying Legacy++ Legacy++ limitations Legacy++ example 31.14 USING DYNAMIC LINKE LIBRARIES (DLLS) The static DLL sublanguage 31.15 DESC: CALLING A DLL ROUTINE DETERMINED AT RUN TIME DESC overview Creating a library object Creating a routine object Type codes Calling a routine Accessing the result of a function Consistency requirements and protection against errors Sharing and freeing 31.16 THE CECIL LIBRARY Cecil overview Cecil role and status Compiling for Cecil Avoiding abusive optimization Basic Cecil conventions Initializing the Eiffel 4 run-time Manipulating values of basic Eiffel types Manipulating Eiffel class types Accessing an Eiffel object Creating an Eiffel object Calling routines Requesting a non-existing routine Accessing field objects ISE Eiffel specifics 32 32 Lexical components 32.1 OVERVIEW 32.2 CHARACTER SETS Syntax (non-production): Character, character set 32.3 CHARACTER CATEGORIES Letter, alpha_betic, numeric, alpha_numeric, printable 32.4 GENERAL FORMAT 32.5 BREAKS Break character, break 32.6 COMMENTS Expected, free comment Syntax (non-production): “Blanks or tabs”, new line Syntax (non-production): Free Comment rule Header comment rule 32.7 TEXT LAYOUT Symbol, word Syntax (non-production): Break rule 32.8 LETTER CASE 32.9 TOKEN CATEGORIES 32.10 RESERVED WORDS Reserved word, keyword Syntax (non-production): Double Reserved Word rule 32.11 SPECIAL SYMBOLS Special symbol 32.12 IDENTIFIERS Syntax (non-production): Identifier 32.13 OPERATORS Predefined operator Standard operator Operator symbol Free operator 32.14 CHARACTERS Syntax (non-production): Manifest character Special characters and their codes Syntax (non-production): Percent variants 32.15 STRINGS Syntax (non-production): String, simple string 32.16 INTEGERS 32.17 REAL NUMBERS Syntax (non-production): Real number 33.1 OVERVIEW 34.1 OVERVIEW 34.2 LETTER CASE 34.3 CHOICE OF NAMES 34.4 GRAMMATICAL CATEGORIES FOR FEATURE NAMES 34.5 GROUPING FEATURES 34.6 HEADER COMMENTS 34.7 OTHER COMMENTS 34.8 EIFFEL NAMES IN COMMENTS 34.9 LAYOUT 34.10 OPTIONAL SEMICOLONS 34.11 LEXICAL CONVENTIONS 34.12 FONTS 34.13 GUIDELINES FOR ANNOTATING CLASSES 35.1 OVERVIEW 35.2 INPUT AND OUTPUT FEATURES 35.3 DUPLICATION AND COMPARISON ROUTINES 35.4 OBJECT PROPERTIES 35.5 PLATFORM-DEPENDENT FEATURES 35.6 OTHER UNIVERSAL FEATURES 36.1 OVERVIEW 36.2 REPRESENTATION 36.3 RESIZING 36.4 BASIC ARRAY HANDLING 36.5 COPYING AND COMPARING ARRAYS 36.6 MANIFEST ARRAYS 36.7 STRINGS 37.1 OVERVIEW 37.2 CLASSES FOR PERSISTENCE 37.3 OBJECTS AND THEIR DEPENDENTS 37.4 RETRIEVAL, TYPING, AND THE ASSIGNMENT ATTEMPT 37.5 STORING AND RETRIEVING AN ENTIRE STRUCTURE 37.6 CLASS STORABLE 37.7 ENVIRONMENTS 37.8 OPENING AND CLOSING ENVIRONMENTS 37.9 RECORDING AND ACCESSING OBJECTS IN AN ENVIRONMENT 37.10 THE OBJECTS OF AN ENVIRONMENT 37.11 REQUESTING INFORMATION ABOUT ENVIRONMENTS 37.12 STORING ENVIRONMENTS 37.13 RETRIEVING AN ENVIRONMENT 37.14 AN ENVIRONMENT EXAMPLE 37.15 CLASS ENVIRONMENT 38.1 OVERVIEW 38.2 PURPOSE OF THE CLASS 38.3 INPUT TECHNIQUES 38.4 CLASS STANDARD_FILES A A ELKS: The Eiffel Library Kernel Standard A.1 OVERVIEW A.2 CONTENTS OF THIS STANDARD A.3 COMPATIBILITY CONDITIONS A.4 REQUIRED CLASSES A.5 REQUIRED ANCESTRY LINKS A.6 SHORT FORMS OF REQUIRED CLASSES A.6.1 CLASS ANY A.6.2 CLASS TYPE A.6.3 CLASS PART_COMPARABLE A.6.4 CLASS COMPARABLE A.6.5 CLASS HASHABLE A.6.6 CLASS NUMERIC A.6.7 CLASS INTERVAL A.6.8 CLASS BOOLEAN A.6.9 CLASS CHARACTER A.6.10 CLASS INTEGER_GENERAL A.6.11 CLASS INTEGER A.6.12 CLASS INTEGER_8 A.6.13 CLASS INTEGER_16 A.6.14 CLASS INTEGER_64 A.6.15 CLASS REAL_GENERAL A.6.16 CLASS REAL A.6.17 CLASS TYPED_POINTER A.6.18 CLASS POINTER A.6.19 CLASS ARRAY A.6.20 CLASS ANONYMOUS A.6.21 CLASS STRING A.6.22 CLASS STD_FILES A.6.23 CLASS FILE A.6.24 CLASS STORABLE A.6.25 CLASS MEMORY A.6.26 CLASS EXCEPTIONS A.6.27 CLASS ARGUMENTS A.6.28 CLASS PLATFORM A.6.29 CLASS ONCE_MANAGER A.6.30 CLASS ROUTINE A.6.31 CLASS PROCEDURE A.6.32 CLASS FUNCTION A.6.33 CLASS PREDICATE B B Specifying systems in Lace (in progress) C C On language design and evolution E E A brief history of Eiffel F F Language changes from the previous edition 38.5 SEMANTIC EXTENSIONS AND CHANGES G G Changes from early versions H H An Eiffel tutorial I I Eiffel bibliography (not done) K K Syntax in alphabetical order L L Reserved words, special symbols, operator precedence M Syntax diagrams (not done) Eiffel Analysis, Design and Programming Language ECMA-367-3 (Draft) Standard ECMA-367 Eiffel Analysis, Design and Programming Language 1.1 Overview 1.2 “The Standard” 1.3 Aspects covered 1.4 Aspects not covered 2.1 Definition 2.2 Compatibility and non-default options 2.3 Departure from the Standard 3.1 Earlier Eiffel language specifications 3.2 Eiffel Kernel Library 3.3 Floating point number representation 3.4 Character set: Unicode 3.5 Character set: ASCII 3.6 Phonetic alphabet 5.1 Standard elements 5.2 Normative elements 5.3 Rules on definitions 5.4 Use of defined terms 5.5 Unfolded forms 5.6 Language description 5.7 Validity: “if and only if” rules 6.1 Name of the language 6.2 Pronunciation 7.1 Design principles 7.2 Object-oriented design 7.3 Classes 7.4 Types 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 classes 7.12 Tuples and agents 7.13 Type- and void-safety 7.14 Putting a system together 8.3.4 Syntax : Class names 8.4.2 Syntax : Class declarations 8.4.3 Syntax : Notes 8.4.5 Syntax : Class headers 8.4.8 Syntax : Obsolete marks 8.5.2 Syntax : Feature parts 8.5.4 Syntax : Feature declarations 8.5.5 Syntax : New feature lists 8.5.6 Syntax : Feature bodies 8.5.14 Syntax : Feature names 8.5.20 Syntax : Operators 8.5.21 Syntax : Assigner marks 8.6.1 Syntax : Inheritance parts 8.6.14 Syntax : Rename clauses 8.7.9 Syntax : Clients 8.7.10 Syntax : Export adaptation 8.8.2 Syntax : Formal argument and entity declarations 8.8.5 Syntax : Routine bodies 8.8.7 Syntax : Local variable declarations 8.8.10 Syntax : Instructions 8.9.1 Syntax : Assertions 8.9.7 Syntax : “Old” postcondition expressions 8.9.11 Syntax : “Only” postcondition clauses 8.9.17 Syntax : Check instructions 8.9.19 Syntax : Variants 8.10.10 Syntax : Precursor 8.10.15 Syntax : Redefinition 8.10.18 Syntax : Undefine clauses 8.11.1 Syntax : Types 8.12.1 Syntax : Actual generic parameters 8.12.2 Syntax : Formal generic parameters 8.12.8 Syntax : Generic constraints 8.13.1 Syntax : Tuple types 8.13.2 Syntax : Manifest tuples 8.15.6 Syntax : Converter clauses 8.16.6 Syntax : Select clauses 8.17.2 Syntax : Conditionals 8.17.7 Syntax : Multi-branch instructions 8.17.16 Syntax : Loops 8.17.18 Syntax : Debug instructions 8.18.1 Syntax : Attribute bodies 8.19.8 Syntax : Entities and variables 8.20.4 Syntax : Creators parts 8.20.11 Syntax : Creation instructions 8.20.18 Syntax : Creation expressions 8.21.2 Syntax : Equality expressions 8.22.2 Syntax : Assignments 8.22.10 Syntax : Assigner calls 8.23.2 Syntax : Feature calls 8.23.3 Syntax : Actual arguments 8.24.1 Syntax : Object test 8.26.2 Syntax : Rescue clauses 8.27.5 Syntax : Agents 8.27.6 Syntax : Call agent bodies 8.28.1 Syntax : Expressions 8.28.4 Syntax : Operator expressions 8.28.12 Syntax : Bracket expressions 8.29.1 Syntax : Constants 8.29.3 Syntax : Manifest constants 8.29.10 Syntax : Manifest strings 8.31.1 Syntax : External routines 8.31.3 Syntax : Registered languages 8.31.4 Syntax : External signatures 8.31.7 Syntax : External file use 8.31.10 Syntax : C externals 8.31.13 Syntax : C++ externals 8.31.16 Syntax : DLL externals 8.32.7 Syntax : Comments 8.32.28 Syntax : Integers Index Symbols A B C D E F G H I J K L M N O P Q R S T U V W Y Z