Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Eiffel (programming language)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Characteristics== The key characteristics of the Eiffel language include: * An object-oriented program structure in which a class serves as the basic unit of decomposition.<ref>{{cite web | title=Programming Languages - Eiffel | website=Department of Computer Science, Virginia Tech | url=https://courses.cs.vt.edu/~cs3304/Spring02/lectures/lect12.pdf | access-date=25 March 2023}}</ref> * [[Design by contract]] tightly integrated with other language constructs. * Automatic memory management, typically implemented by [[Garbage collection (computer science)|garbage collection]].<ref>{{cite web | author=Carl Friess|title=Eiffel Syntax Guide | website=Eiffel Syntax Guide | url=https://eiffel-guide.com/ | access-date=25 March 2023}}</ref> * [[Inheritance (object-oriented programming)|Inheritance]], including [[multiple inheritance]], [[wikt:renaming|renaming]], [[Method overriding|redefinition]], "select", [http://docs.eiffel.com/book/method/et-inheritance#Non-conforming_inheritance non-conforming inheritance], and other mechanisms intended to make inheritance safe. * Constrained and unconstrained [[generic programming]]<ref name="Claus">{{cite web | author=Claus Brabrand |title=The E I F F E L Programming Language | website=IT University of Copenhagen | url=http://www.itu.dk/people/brabrand/GSD-2013/Eiffel.pdf | access-date=25 March 2023}}</ref> * A uniform [[type system]] handling both value and reference semantics in which all types, including basic types such as INTEGER, are class-based. * [[Static typing]] * [[Void safety]], or static protection against calls on null references, through the attached-types mechanism. * Agents, or objects that wrap computations, closely connected with [[Closure (computer science)|closure]]s and [[lambda calculus]]. * ''Once'' routines, or routines evaluated only once, for object sharing and decentralized initialization. * Keyword-based syntax in the [[ALGOL]]/[[Pascal (programming language)|Pascal]] tradition but separator-free, insofar as semicolons are optional, with operator syntax available for routines. * Case insensitivity * Simple Concurrent Object-Oriented Programming ([[SCOOP (software)|SCOOP]]) facilitates creation of multiple, concurrently active execution vehicles at a level of abstraction above the specific details of these vehicles (e.g. multiple threads without specific mutex management).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)