Scala (linguaggio di programmazione)

Da Wikipedia, l'enciclopedia libera.
Scala
Autore Martin Odersky (EPFL)
Data di origine 2003
Ultima versione 2.9.2 (14 aprile 2012)
Utilizzo general-purpose
Paradigmi Programmazione a oggetti, funzionale
Tipizzazione forte
Estensioni comuni .scala
Influenzato da Erlang, Haskell,
Implementazione di riferimento
Sistema operativo multipiattaforma, richiede una JVM o un interprete CLR
Licenza BSD
Sito web scala-lang.org

Scala (da Scalable Language) è un linguaggio di programmazione di tipo general-purpose multi-paradigma studiato per integrare le caratteristiche e funzionalità dei linguaggi orientati agli oggetti e dei linguaggi funzionali[1][2].

Indice

Piattaforme supportate [modifica]

Scala è stato studiato per interoperare con la piattaforma Java 2 Runtime Environment (JRE) rendendo l'integrazione con le applicazioni e i componenti Java molto agevole. Scala utilizza lo stesso modello di compilazione (compilazione separata, caricamento delle classi dinamiche) utilizzato da Java permettendo così l'accesso a molte librerie sviluppate in questo ambiente. Scala è anche disponibile per la piattaforma .NET Framework (CLR).

Storia [modifica]

Scala è stato progettato e sviluppato a partire dal 2001 da Martin Odersky e dal suo gruppo all'École polytechnique fédérale de Lausanne (EPFL). È stato rilasciato pubblicamente a gennaio 2004 sulla piattaforma Java e a giugno dello stesso anno sulla piattaforma .NET. La seconda versione del linguaggio è stata rilasciata a marzo del 2006[3].

Funzionalità Object-oriented [modifica]

Scala è un linguaggio completamente orientato agli oggetti. Ogni elemento del linguaggio è un oggetto, inclusi numeri e funzioni che, così, possono venire memorizzate in variabili, essere passate come parametri, rappresentare il risultato di una chiamata di metodo, oppure essere estese tramite ereditarietà. I tipi e l'eredità degli oggetti sono descritti da classi e trait.

Programmazione funzionale [modifica]

Scala è anche un linguaggio funzionale in quanto ogni funzione è un valore. Scala fornisce un linguaggio molto diretto per definire funzioni anonime (dichiarate e usate senza essere legate ad un nome), supporta funzioni di ordine superiore, permette alle funzioni di essere annidate e supporta funzioni parziali.

Scala ha un supporto nativo per il pattern matching che permette di potenziare l'elaborazione di dati XML con il supporto di espressioni regolari. Questa caratteristica unita con la possibilità di definire liste esaurienti (list comprehension) rende questo linguaggio ideale per sviluppare applicazioni come i web service.

Note [modifica]

  1. ^ (EN) The Scala Programming Language. URL consultato in data 06/09/2008.
  2. ^ (EN) An Overview of the Scala Programming Language - Second edition. URL consultato in data 06/09/2008.]
  3. ^ (EN) Scala's Prehistory. URL consultato in data 06/09/2008.]

Bibliografia [modifica]

Collegamenti esterni [modifica]