Eiffel (programmeertaal)

Eiffel
Eiffel
Paradigma Objectgeoriënteerd
Verschenen 1985
Ontwerper Bertrand Meyer
Ontwikkelaar Bertrand Meyer en Eiffel Software
Huidige versie 24.05[1] Bewerken op Wikidata
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
Portaal  Portaalicoon   Informatica

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.

Voorbeeld

Hieronder een voorbeeld van Eiffel-broncode (het klassieke Hello world):

 class HELLO_WORLD
 create
     make
 feature
     make
         do
             io.putstring ("Hello, world!%N")
         end
 end

Zie ook