Overview
ISO/IEC 25436:2006 - Information technology - Eiffel: Analysis, Design and Programming Language is the international standard that provides the full reference specification of the Eiffel programming language. It defines the language used for analysis, design, implementation and maintenance of software systems, focusing specifically on the language itself with an emphasis on implementation aspects and conformance.
Key topics and technical requirements
The standard specifies language elements, syntax and semantics, and includes normative requirements for implementers. Major technical areas covered include:
- Language architecture and syntax: formal syntax rules (BNF-style), textual conventions, naming rules and overall organization of Eiffel software (clusters, classes, root types).
- Classes and types: class declarations, expanded/deferred/frozen classes, type definitions, and type dependency rules.
- Features and routines: feature categories, feature bodies, signatures, commands vs queries, aliasing and operator rules.
- Inheritance and conformance: single and multiple inheritance, renaming, feature adaptation, ancestor/descendant relations and validity rules.
- Genericity and polymorphism: generic classes, combination of generics with inheritance, dynamic binding and polymorphic behavior.
- Assertions and exception handling: contracts (preconditions, postconditions, invariants) and semantics of exception mechanisms.
- Safety and execution: rules for type- and void-safety, semantics of system execution, and putting systems together.
- Auxiliary constructs: tuples, agents and deferred classes.
- Conformance and portability: definition of conformance, handling of compatibility and non-default options, and rules for departures from the standard.
- Normative references: references to earlier Eiffel specifications, the Eiffel Kernel Library, floating-point representation, Unicode and ASCII character sets.
Practical applications and users
ISO/IEC 25436:2006 is intended primarily for:
- Compiler and runtime implementers - to ensure correct, conformant Eiffel language implementations.
- Tool and IDE vendors - for parsers, static analyzers, documentation generators and refactoring tools consistent with the standard.
- Software architects and developers - to apply Eiffel’s object-oriented and contract-based design principles in critical systems.
- Educators and researchers - as an authoritative reference for language semantics and pedagogy.
- Certification and QA teams - for verifying language conformance, type-safety and portability across implementations.
Using the standard helps ensure interoperable, portable Eiffel code and consistent implementation of advanced language features like assertions, genericity and inheritance.
Related standards
Normative references in ISO/IEC 25436:2006 include earlier Eiffel specifications, the Eiffel Kernel Library, and character and numeric representations (Unicode, ASCII, floating-point). For broader context, consult other ISO/IEC programming-language and information-technology standards addressing character encoding and numeric formats.