Eiffel (linguaggio)
# Eiffel (linguaggio)

Eiffel è un linguaggio di programmazione object-oriented che enfatizza la scrittura di programmi robusti. Fu uno dei primi linguaggi a oggetti compilati e pensati per l'utilizzo industriale. La sua sintassi ricorda quella di ALGOL, Pascal e Ada. Eiffel ha una tipizzazione forte statica, e una gestione automatica e affidabile della memoria (tipicamente implementata tramite garbage collection).

## Descrizione

Il linguaggio è nato nel 1985 e ha avuto applicazioni nell'industria del software, pur non riuscendo a raggiungere il livello di diffusione di altri linguaggi object-oriented compilati (per esempio C++). In virtù delle sue rinomate proprietà di purezza concettuale (ovvero di aderenza al paradigma object-oriented classico), non raramente veniva usato nelle università a scopo didattico; oggi anche in questo ruolo è stato in molti casi soppiantato da Java.

Si differenzia dalla maggior parte dei linguaggi per avere un'implementazione nativa del design by contract. Altre caratteristiche sono:

* Ereditarietà multipla.
* Sistema di tipi in grado di gestire sia la semantica di valore che la semantica di riferimento.
* Classi generiche, cioè parametrizzate da altre classi.
* Orientamento agli oggetti puro. Per esempio, è possibile creare sottoclassi anche della classe INTEGER.
* Overloading degli operatori (ma non dei metodi).

## Programma di esempio

Il seguente esempio è un'implementazione di Hello, world!, il programma che stampa il testo "Hello World".

