|
Eiffel is an object-oriented programming language which emphasizes the production of robust software. Its syntax is keyword-oriented in the ALGOL and Pascal tradition. Eiffel is strongly statically typed, with automatic memory management (typically implemented by garbage collection). Object-oriented programming (OOP) is a computer programming paradigm in which a software system is modeled as a set of objects that interact with each other. ...
Computer code (HTML with JavaScript) in a tool that uses syntax highlighting (colors) to help the developer see the purpose of each piece of code. ...
ALGOL (short for ALGOrithmic Language) is a family of imperative computer programming languages originally developed in the mid 1950s which became the de facto standard way to report algorithms in print for almost the next 30 years. ...
Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ...
On computer science, a datatype (often simply type) is a name or label for a set of values and some operations which can be performed on that set of values. ...
In computer science, garbage collection (also known as GC) is a form of automatic memory management. ...
Begun in 1985, Eiffel is a mature language with development systems available from multiple suppliers. Despite this maturity and a generally excellent reputation among those who are familiar with it, Eiffel has failed to gain as large a following as some other object-oriented languages. The reasons for this lack of interest are unclear, and are a topic of frequent discussion within the Eiffel community. Distinguishing characteristics of Eiffel include design by contract (DbC), liberal use of inheritance including multiple inheritance, a type system handling both value and reference semantics, and generic classes. Eiffel has a unified type system—all types in Eiffel are classes. Design by contract, DBC or Programming by contract is a methodology for designing computer software. ...
Inheritance is the practice of passing on property, titles, debts, and obligations upon the death of an individual. ...
Eiffel makes it possible to define operator syntax for any function, with operator overloading and method overloading across classes but not within a class. In computer programming, operator overloading (less commonly known as operator ad-hoc polymorphism) is a specific case of polymorphism in which some or all of operators like +, = or == have different implementations depending on the types of their arguments. ...
Method overloading is a feature found in various programming languages such as C++ and Java that allows the creation of several functions with the same name which differ from each other in terms of the type of the inbananaput and the type of the output of the function. ...
Design goals The Eiffel language aims to promote clear and elegant programming. Eiffel emphasizes declarative statements over procedural code, and eliminates the need for bookkeeping instructions. Eiffel shuns coding tricks or coding techniques intended as optimization hints to the compiler. The aim is not only to make the code more readable, but also to allow programmers to concentrate on the important aspects of a program without getting bogged down in implementation details. Eiffel's simplicity is intended to promote simple, extendible, reusable and reliable answers to computing problems. It has been suggested that Loop optimization be merged into this article or section. ...
Lexical simplicity Eiffel is not case-sensitive. Keywords and identifiers can be written in any combination of upper and lower case. The tokens MaKe, make, and MAKE all refer to the same identifier. Coding standards, however, generally prescribe the use of all-capitals for class names, all-lower-case for variables and method names, and initial capitals for constants, with underscores separating words. Eiffel's syntax can be parsed without requiring end-of-instruction markers. The use of semicolons as instruction terminators or as instruction separators is left to the discretion of the programmer. Putting a semicolon in or leaving one out makes no difference, except in the unusual case of an instruction starting with a left parenthesis. Most Eiffel programmers choose to omit semicolons except when putting multiple statements on a line. Eiffel requires that sections and clauses appear in a specific order. In contrast to most curly bracket programming languages, Eiffel does not let expressions be used as instructions, nor instructions be used as expressions. Thus, a routine which returns a value can only be used in expressions, while a routine which does not return a value can only be invoked as an instruction. Curly brace or bracket programming languages are those which use balanced brackets ({ and }, also known as brace brackets or simply braces) in their syntax or formal grammar, mainly due to being C-influenced. ...
This philosophy—that expressions and statements are fundamentally different in nature—is expanded into the concept of Command-Query Separation (CQS). Under CQS, a query routine (a function which returns a value) must not change the state of the object, while a command routine will change the state of the object but will not return a value. CQS is strongly recommended for Eiffel programming, but is not actually enforced by the Eiffel system. Command-query separation (CQS) is a principle of object-oriented computer programming. ...
Unlike most programming languages, Eiffel is not normally displayed in a monospaced typeface. The recommended display style is to use a proportional typeface. Keywords are shown in bold, user-defined identifiers and constants are shown in italics. Standard upright (roman) style is used for comments, operators, and punctuation marks.
Syntactic simplicity Eiffel has only six basic executable instructions: - assignment
- object creation
- routine call
- conditional
- iteration
- choice (case)
Unlike many object-oriented languages, but similar to Smalltalk, Eiffel does not permit storing into fields of other objects. The assignment instruction can only change the value of a field of the current object, or a local variable of the current routine. All changes to other objects must be accomplished by calls to methods of that object. Direct access to fields of other objects is "read only" in Eiffel. Smalltalk is a dynamically typed object oriented programming language designed at Xerox PARC by Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg, and others during the 1970s. ...
In computer science, a subroutine (function, procedure, or subprogram) is a sequence of code which performs a specific task, as part of a larger program, and is grouped as one, or more, statement blocks; such code is sometimes collected into software libraries. ...
The iteration (loop) instruction in Eiffel does not provide a field or clause which will step the loop. The programmer must express the stepping as part of the loop. For example:
from i := 0 until i >= 10 loop my_array.put (0, i) i := i + 1 end The example above also illustrates that Eiffel treats arrays simply as instances of the class ARRAY, providing access in the form of routine calls, in line with object-oriented ideas. Eiffel compilers optimize this access. Eiffel's procedural coding is strictly structured. There are no instructions for exiting a loop or routine early.
Non-object-oriented operations
Eiffel is a purely object-oriented language. Any coding which must be "close to the machine" is expected to be done in C. Eiffel provides a straightforward interface to C routines, including allowing for straight C calls within Eiffel code. Eiffel is generally closely connected to C: three of the four Eiffel compilers output no object or machine code, but only C source code as an intermediate language, to submit to a C compiler, for optimizing and portability. The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the UNIX...
A diagram of the operation of a typical multi-language compiler. ...
In computer science, object file or object code is an intermediate representation of code generated by a compiler after it processes a source code file. ...
A system of codes directly understandable by a computers CPU is termed this CPUs native or machine language. ...
Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ...
In computer science, an intermediate language is the language of an abstract machine designed to aid in the analysis of computer programs. ...
It has been suggested that Loop optimization be merged into this article or section. ...
In computer science, porting is the adaptation of a piece of software so that it will function in a different computing environment to that for which it was originally written. ...
Background of Eiffel Eiffel was originally developed by Bertrand Meyer and his company Interactive Software Engineering (ISE), since renamed Eiffel Software, Inc. Eiffel closely follows Dr. Meyer's work in Object Oriented Software Construction, Second Edition. Eiffel differs from most popular languages in several ways. Bertrand Meyer developed the Eiffel programming language, and is an author, academic and consultant in the field of computer languages. ...
The goal of the language, libraries, and programing methods is to create reliable, reusable software modules. It supports multiple inheritance, genericity, polymorphism, encapsulation, and parameter covariance. Its most important contribution to software engineering is Design by contract (DbC), in which assertions, preconditions, postconditions, and class invariants are used to assist in assuring program correctness without sacrificing efficiency. Some object-oriented programming languages (e. ...
In computer science, generics is a technique that allows one value to take different datatypes (so-called polymorphism) as long as certain contracts such as subtypes and signature are kept. ...
In computer science, polymorphism means allowing a single definition to be used with different types of data (specifically, different classes of objects). ...
Encapsulation may refer to: (in the vernacular) expressing an idea with few words, such as with an adage, proverb, slogan, or jingle (in software engineering) the process of enclosing programming elements inside a larger, more abstract entity, similar to information hiding and separation of concerns. ...
If a class is inherited and a feature/method/attribute redefined, a parameter or return type can be changed to be a more specialised type. ...
Software engineering (SE) is the practice of creating and maintaining software applications by applying technologies and practices from engineering, computer science, project management, application domains and other fields. ...
Design by contract, DBC or Programming by contract is a methodology for designing computer software. ...
In computer programming, an assertion is a programming language construct which immediately aborts program execution if a certain condition or expression is false (an assertion failure). It is used by programmers during development to check for potential errors or bugs. ...
In logic a precondition is a condition that has to be met, before a main argument can have any value. ...
A postcondition is a fact that must always be true just after the execution of some section of code. ...
This article is about class invariants in computer science; for use of the term in mathematics, see equivalence class and invariant. ...
Eiffel also offers multiple class inheritance. Many people (such as the designers of Java) have objections to multiple inheritance. The Eiffel implementation of multiple inheritance, in the opinion of its supporters, successfully meets these objections. Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ...
Eiffel's design is closely based on Object-Oriented Programming (OOP) theory, with less influence from other paradigms or support for legacy code. The language has formal support for abstract data types. In accordance with Self Documentation, a software text should be able to reproduce its design documentation from the text itself. Eiffel accomplishes this by using a formalized implementation of the Abstract Data Type. To meet Wikipedias quality standards, this article or section may require cleanup. ...
EiffelStudio, an integrated development environment for Eiffel that has recently become open source software, offers an object-oriented interface for software engineering. However, many programmers dislike it because its user interface is very different from other integrated development environments. There are two alternative, also open source implementations, SmartEiffel - the GNU implementation, and Visual Eiffel, which provides a more "traditional" interface. So does EiffelEnvision, a plugin for Microsoft Visual Studio which allows users to edit, compile, and debug Eiffel apps from within the Microsoft Visual Studio IDE. EiffelStudio and EiffelEnvision are only free for non-commercial use, though. Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ...
Software engineering (SE) is the practice of creating and maintaining software applications by applying technologies and practices from engineering, computer science, project management, application domains and other fields. ...
Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ...
SmartEiffel is a free Eiffel compiler. ...
Microsoft Visual Studio is an advanced integrated development environment by Microsoft. ...
Specifications and standards On the 21 June 2005 the European Computer Manufacturers Association (ECMA) approved the first international standard for Eiffel ECMA standard 367, Eiffel Analysis, Design and Implementation Language. The standard is currently (March 2006) up for acceptance as an International Standards Organization (ISO) standard. June 21 is the 172nd day of the year (173rd in leap years) in the Gregorian calendar, with 193 days remaining. ...
2005 (MMV) was a common year starting on Saturday of the Gregorian calendar. ...
Ecma International - European association for standardising information and communication systems came into existence in 1994, when the European Computer Manufacturers Association (ECMA) changed its name in order to reflect the international activities of the organisation (the long form of ECMA was dropped then, and capitalization changed to reflect this). ...
Logo of the International Organization for Standardization The International Organization for Standardization (ISO or Iso) is an international standard-setting body made up of representatives from national standards bodies. ...
This standard is not accepted by the SmartEiffel team, which has decided to create its own version of the language, because they think the ECMA standard throws away important principles of the original language. Eiffel Software and Gobo have committed to implementing the standard. Object Tools has not to date expressed a position. SmartEiffel is a free Eiffel compiler. ...
The standard cites the following as earlier Eiffel Language specifications: - Bertrand Meyer: Eiffel: The Language, Prentice Hall, second printing, 1992 (first printing: 1991)
- Bertrand Meyer: Standard Eiffel (revision of preceding entry), ongoing, 1997-present, at Bertrand Meyer's ETL3 page, and
- Bertrand Meyer: Object-Oriented Software Construction, Prentice Hall: first edition, 1988; second edition, 1997.
The ETL3 page requires a password for access which can be found at Bertrand Meyer's Home Page under Work in progress
Differences between SmartEiffel and other implementations - SmartEiffel is currently unable to compile the open-source EiffelBase library from Eiffel Software.
SmartEiffel is a free Eiffel compiler. ...
A "Hello World" program in Eiffel class HELLO_WORLD create make feature make is do io.put_string ("Hello, world!%N") end end See also The Apple Media Tool was a multimedia authoring tool and associated programming environment sold by Apple in the late 1990s. ...
External links - Eiffel Software's Open Source initiative
- Eiffel Software web site of the company that introduced Eiffel, was Interactive Software Engineering (ISE).
- Eiffel tutorial (100 pages) by Bertrand Meyer (HTML, PDF)
- SmartEiffel fairly complete Eiffel compiler, released under GNU GPL license, was SmallEiffel, not ECMA standard compliant.
- Visual Eiffel an open source implementation of Eiffel creating native code for X86 systems (Windows, Linux)
- NICE Nonprofit International Consortium for Eiffel.
- eiffelzone.com Includes a comprehensive Eiffel Software Directory
- Cetus Eiffel Page
- Eiffel for .Net
Bertrand Meyer developed the Eiffel programming language, and is an author, academic and consultant in the field of computer languages. ...
Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ...
A system of codes directly understandable by a computers CPU is termed this CPUs native or machine language. ...
References - Object Oriented Software Construction, Second Edition, by Bertrand Meyer, Prentice Hall, 1997, ISBN 0-13-629155-4; contains a very detailed treatment of the beliefs about object-orientation behind Eiffel.
- Eiffel: the Language subset
| Major programming languages (more/edit) | | Industrial: ABAP | Ada | AWK | Assembly | C | C++ | C# | COBOL | Common Lisp | ColdFusion | D | Delphi | Eiffel | Fortran | JADE | Java | JavaScript | Lua | Objective-C | Pascal | Perl | PHP | Python | REALbasic | RPG | Ruby | SQL | Tcl | Visual Basic | VB.NET | Visual FoxPro Bertrand Meyer developed the Eiffel programming language, and is an author, academic and consultant in the field of computer languages. ...
There are a lot of kinds of listing. ...
ABAP (Advanced Business Application Programming) is a high level programming language created by the German software company SAP. It is currently positioned as the language for programming SAPs Web Application Server, part of its NetWeaver platform for building business applications. ...
Ada is a structured, statically typed imperative computer programming language designed by a team led by Jean Ichbiah of CII Honeywell Bull during 1977â1983. ...
AWK is a general purpose computer language that is designed for processing text based data, either in files or data streams. ...
It has been suggested that Assembler be merged into this article or section. ...
The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a general-purpose, procedural, imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the UNIX...
C++ (generally pronounced see plus plus) is a general-purpose programming language. ...
The title given to this article is incorrect due to technical limitations. ...
COBOL is a third-generation programming language. ...
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, standardised by ANSI X3. ...
ColdFusion is the original and most common implementation of a tag and ECMAScript-based programming language -- ColdFusion Markup Language (CFML) and CFSCRIPT, respectively -- which is typically used in web application development for the generation of dynamic web pages. ...
D is an object-oriented, imperative systems programming language designed by Walter Bright of Digital Mars as a successor to C++. He has done this by adding some features and reducing the complexity of C++ syntax. ...
Delphi is the primary programming language of Borland Delphi. ...
Fortran (also FORTRAN) is a computer programming language originally developed in the 1950s; it is still used for scientific computing and numerical computation half a century later. ...
The JADE logo JADE is an object-oriented programming language that exhibits a seamlessly integrated object-oriented database management system. ...
Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ...
JavaScript is the name of Netscape Communications Corporations implementation of ECMAScript, a scripting programming language based on the concept of prototypes. ...
The Lua (pronounced LOO-ah, or in IPA) programming language is a lightweight, reflective, imperative and procedural language, designed as a scripting language with extensible semantics as a primary goal. ...
Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language...
Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ...
Perl, also Practical Extraction and Report Language (a backronym, see below) is a dynamic procedural programming language designed by Larry Wall and first released in 1987. ...
PHP is a scripted programming language that can be used to create websites. ...
Python is an interpreted programming language created by Guido van Rossum in 1990. ...
This article or section does not cite its references or sources. ...
RPG is a native programming language for IBMs iSeries servers - the latest generation of midrange servers which included System/38, System/36, AS/400, iSeries and System i5 systems. ...
Ruby is a reflective, object-oriented programming language. ...
SQL (commonly expanded to Structured Query Language â see History for the terms derivation) is the most popular computer language used to create, modify and retrieve and manipulate data from relational database management systems. ...
// Tcl (originally from Tool Command Language, but nonetheless conventionally rendered as Tcl rather than TCL; and pronounced like tickle) is a scripting language created by John Ousterhout. ...
The four colored boxes is the logo of VBA, and the two drums above them symbolize database connectivity Visual Basic (VB) is an event driven programming language and associated development environment prototyped by Alan Cooper as Project Ruby, then bought and vastly improved upon by Microsoft. ...
Visual Basic . ...
Visual FoxPro is a data-centric object-oriented and procedural programming language produced by Microsoft. ...
| Academic: APL / J | OCaml | Haskell | Scheme | Smalltalk | Logo | MATLAB | Mathematica | ML | Prolog APL (for A Programming Language, or sometimes Array Processing Language) is an array programming language based on a notation invented in 1957 by Kenneth E. Iverson while at Harvard University. ...
The J programming language, developed in the early 90s by Ken Iverson and Roger Hui, is a synthesis of APL (also by Iverson) and the FP and FL functional programming languages created by John Backus (of FORTRAN, ALGOL, and BNF fame). ...
Objective Caml (OCaml) is a general-purpose programming language descended from the ML family, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and others in 1996. ...
Haskell is a standardized pure functional programming language with non-strict semantics named after the logician Haskell Curry. ...
Scheme is a functional programming language and a dialect of Lisp. ...
Smalltalk is an object-oriented, dynamically typed, reflective, programming language designed at Xerox PARC by Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg, and others during the 1970s, influenced by Sketchpad and Simula. ...
The Logo programming language is an imperative programming language. ...
MATLAB is a numerical computing environment and programming language. ...
This article is about computer software. ...
ML is a general-purpose functional programming language developed by Robin Milner and others in the late 1970s at the University of Edinburgh, whose syntax is inspired by ISWIM. Historically, ML stands for metalanguage as it was conceived to develop proof tactics in the LCF theorem prover (the language of...
Prolog is a logic programming language. ...
| | Other: ALGOL | BASIC | Clipper | Forth | Limbo | Modula-2/Modula-3 | MUMPS | PL/I | Simula ALGOL (short for ALGOrithmic Language) is a family of imperative computer programming languages originally developed in the mid 1950s which became the de facto standard way to report algorithms in print for almost the next 30 years. ...
Atari BASIC screenshot. ...
Clipper is a computer programming language that is used to create software programs that originally operated primarily under DOS. Although it is a powerful general-purpose programming language, it was primarily used to create database/business programs. ...
Forth is a procedural, stack-oriented, reflective programming language and programming environment. ...
Limbo is a programming language for writing distributed systems and is the language used to write applications for the Inferno operating system. ...
Modula-2 is a computer programming language invented by Niklaus Wirth at ETH around 1978, as a successor to Modula, another language by him. ...
Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2. ...
PL/I (Programming Language One, pronounced pee el one) is an imperative computer programming language designed for scientific, engineering, and business applications. ...
Simula is a programming language developed in the 1960s at the Norwegian Computing Centre in Oslo, by Ole-Johan Dahl and Kristen Nygaard. ...
| | |