title: Eiffel (linguaggio)
text: # 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".
  
  