Eiffel | ||||
---|---|---|---|---|
Paradigma | Objectgeoriënteerd | |||
Verschenen | 1985 | |||
Ontwerper | Bertrand Meyer | |||
Ontwikkelaar | Bertrand Meyer en Eiffel Software | |||
Huidige versie | 24.05[1] 14 juni 2024 | |||
Typesysteem | statisch, sterk | |||
Implementaties | EiffelStudio, Visual Eiffel[dode link], en anderen | |||
Beïnvloed door | Ada, Simula 67, Z | |||
Invloed op | C#, D, Java, Ruby, Sather, Scala | |||
Website | Projectwebsite | |||
|
Eiffel is een zuiver objectgeoriënteerde programmeertaal, vanaf 1985 door Bertrand Meyer ontwikkeld bij het bedrijf Interactive Software Engineering (het tegenwoordige Eiffel Software uit Santa Barbara in de Amerikaanse staat Californië) en naar Gustave Eiffel vernoemd (onder andere de architect van de Parijse Eiffeltoren).
Eiffel is een zogenaamde zuiver objectgeoriënteerde programmeertaal. Dit betekent dat alle bekende begrippen met betrekking tot objectoriëntatie (zoals information hiding, polymorfisme en dynamische binding) op Eiffel van toepassing zijn. Hoewel de taal in de industrie nooit echt is aangeslagen is ze daarmee wel een populaire taal voor educatieve doeleinden. Ze ondersteunt generieke datatypen (die allemaal van het type class zijn), is strikt statisch getypeerd en kent ongelimiteerde meervoudige overerving.
Een hoge mate van portabiliteit wordt bereikt door vanuit Eiffel broncode in C te genereren. C kan namelijk weer op tal van platformen worden gecompileerd. Bovendien hanteert Eiffel een beperkt aantal begrijpelijke sleutelwoorden (zoals we dat ook wel kennen van Algol en Pascal). Dit maakt de ontwikkeling van compacte, overzichtelijke brontekst mogelijk. Door sommige softwareontwikkelaars wordt dit echter gezien als een beperkende factor (betuttelend). Met de mogelijkheid om de semantische karakteristieken van een datatype te specificeren in dezelfde notatie die later wordt gebruikt om de eigenschappen van bewerkingen, en weer later de implementatiedetails, vast te leggen of te wijzigen ontstaat wel een consistente samenhang tussen specificatie, ontwerp en realisatie. Mechanismen zoals automatisch geheugenbeheer (geïmplementeerd via garbage collection), de integratie van assertie-afhandeling en design by contract (DbC), geven aan dat de nadruk bij de ontwikkeling van Eiffel heeft gelegen op robuustheid.
Op 21 juni 2005 is de eerste internationale standaard voor Eiffel goedgekeurd: ECMA standaard 367, Eiffel Analysis, Design and Implementation Language. Deze standaard is echter niet door de gehele Eiffelgemeenschap met open armen ontvangen omdat volgens hen een aantal basisprincipes van de oorspronkelijke taal terzijde zijn geschoven. Hierdoor heeft er een afsplitsing plaatsgevonden: SmartEiffel.