Scala (linguaggio di programmazione)
Scala linguaggio di programmazione | |
---|---|
Autore | Martin Odersky (EPFL) |
Data di origine | 2003 |
Ultima versione | 3.5.0 (22 agosto 2024) |
Utilizzo | general-purpose |
Paradigmi | Programmazione a oggetti, funzionale |
Tipizzazione | forte |
Estensioni comuni | .scala |
Influenzato da | Java, Erlang, Haskell, |
Implementazione di riferimento | |
Sistema operativo | multipiattaforma, richiede una JVM |
Licenza | BSD |
Sito web | www.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]. La compilazione di codice sorgente Scala produce Java bytecode per l'esecuzione su una JVM.
Piattaforme supportate
[modifica | modifica wikitesto]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. In passato era disponibile anche per la piattaforma .NET Framework (CLR).
Storia
[modifica | modifica wikitesto]Scala è stato progettato e sviluppato a partire dal 2001 da Martin Odersky e dal suo gruppo alla Scuola politecnica federale di Losanna (EPFL). È stato distribuito pubblicamente a gennaio 2004 sulla piattaforma Java e a giugno dello stesso anno sulla piattaforma .NET (ora non più supportata). La seconda versione del linguaggio è stata distribuita a marzo del 2006[3].
Funzionalità object-oriented
[modifica | modifica wikitesto]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 | modifica wikitesto]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.
Esempi
[modifica | modifica wikitesto]Hello World!
[modifica | modifica wikitesto]object HelloWorld extends App {
println("Hello, world!")
}
Note
[modifica | modifica wikitesto]- ^ (EN) The Scala Programming Language, su scala-lang.org. URL consultato il 06/09/2008.
- ^ (EN) An Overview of the Scala Programming Language - Second edition (PDF), su scala-lang.org. URL consultato il 06/09/2008.]
- ^ (EN) Scala's Prehistory, su scala-lang.org. URL consultato il 06/09/2008.]
Bibliografia
[modifica | modifica wikitesto]- (EN) Programming in Scala - A comprehensive step-by-step guide - by Martin Odersky, Lex Spoon, and Bill Venners, su artima.com.
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su scala-lang.org.
- Scala, su packages.debian.org.
- (EN) Scala, su GitHub.
- Repository sorgenti di Scala, su github.com.
- (EN) Sito del politecnico di Losanna dedicato al linguaggio di programmazione Scala, su scala-lang.org.
- (EN) Manuali di riferimento su Scala, su scala-lang.org.
- (EN) The Scala Language Specification Version 2.7 (PDF) [collegamento interrotto], su scala-lang.org.
- (EN) An Overview of the Scala Programming Language - Second edition (PDF), su scala-lang.org.
- (EN) Distribuzioni Scala, su scala-lang.org.
- (EN) Scala Wiki, su scala.sygneca.com. URL consultato il 6 settembre 2008 (archiviato dall'url originale il 30 aprile 2009).
- (EN) Repository degli inserimenti di codice Scala, su codenotifier.com. URL consultato il 6 settembre 2008 (archiviato dall'url originale il 5 settembre 2008).
- (EN) La Community Scala, su scala-lang.org.
- (EN) Presentazione del progetto Scala da Googleplex (video) - di Martin Odersky. Slide della presentazione
- (EN) Rehersal (Una piattaforma di test per Scala), su rehersal.sourceforge.net.
- (EN) Blog di Scala, su scala-blogs.org. URL consultato il 6 settembre 2008 (archiviato dall'url originale il 17 maggio 2013).
- Programmare in Scala, la traduzione italiana del libro Programming Scala, su gpiancastelli.altervista.org.
Controllo di autorità | LCCN (EN) sh2010013203 · GND (DE) 7658965-1 · BNF (FR) cb16664389n (data) · J9U (EN, HE) 987007599951105171 |
---|