Standard ML: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
AlessioBot (discussione | contributi)
m aggiungo tmp a voci presenti in Lista dei linguaggi di programmazione
PertBot (discussione | contributi)
m correggo link a ML (linguaggio di programmazione) (via JWB)
 
(21 versioni intermedie di 12 utenti non mostrate)
Riga 1: Riga 1:
{{tmp|linguaggio di programmazione}}
{{Linguaggio di programmazione
|nome = Standard ML
In [[informatica]], '''SML''' ('''''S'''tandard '''ML''''') è un [[linguaggio di programmazione]] derivato dall<nowiki>'</nowiki>'''ML'''.
|immagine = <!-- Solo nome file -->
|didascalia =
|autore = Robin Milner, Mads Tofte, Robert Harper, David MacQueen
|data = 1990
|utilizzo = generico
|paradigmi = [[Programmazione funzionale|funzionale]] e [[Programmazione imperativa|imperativo]]
|tipizzazione = [[Tipizzazione forte|forte]], [[Tipizzazione statica|statica]], [[Tipizzazione implicita|implicita]]
|specifiche = SML '90<ref name="sml90">{{en}} [http://sml-family.org/sml90-defn.pdf The Definition of Standard ML], di Robin Milner, Mads Tofte e Robert Harper. 1990, The MIT Press, Cambridge, Massachusetts - London, England.</ref>, SML '97<ref name="sml97">{{en}} [http://sml-family.org/sml97-defn.pdf The Definition of Standard ML, Revised], di Robin Milner, Mads Tofte, Robert Harper e David MacQueen. 1997, The MIT Press, Cambridge, Massachusetts - London, England.</ref>.
|estensione = .sml
|influenzato_da = [[ML (linguaggio di programmazione)|ML]]
|ha_influenzato = [[OCaml]], [[Rust (linguaggio di programmazione)|Rust]]
}}
In [[informatica]], '''SML''' ('''''S'''tandard '''ML''''') è un [[linguaggio di programmazione]] derivato dal '''ML'''.


L'ML originale era una serie di MetaLinguaggi ideati da [[Robin Milner]] (e dai suoi studenti) all'[[Università di Edimburgo]] per creare programmi che eseguissero la dimostrazione di teoremi (''theorem provers''). Questi metalinguaggi furono poi "standardizzati" per dare origine all'SML, di cui lo standard più recente risale al [[1997]] (''The Definition of Standard ML - Revised'').
Il linguaggio ML originale era una serie di metalinguaggi ideati da [[Robin Milner]] (e dai suoi studenti) all'[[Università di Edimburgo]] per creare programmi che eseguissero la dimostrazione di teoremi (''theorem provers''). Questi metalinguaggi furono poi "standardizzati" per dare origine all'SML, di cui lo standard più recente risale al [[1997]] (''The Definition of Standard ML - Revised''<ref name="sml97" />).


L'SML è un [[Programmazione funzionale|linguaggio funzionale]], quindi avente la caratteristica di rendere facile ed efficiente la creazione e l'uso di funzioni specializzate. In questo, SML assomiglia al [[Lisp]] o allo [[Scheme]]. Come questi, SML ha molti dialetti oltre al linguaggio standard, tra i quali si distingue [[Ocaml]], che è object oriented, e ''CML'', che è ''[[concurrent]]'' o parallelo. Altri elementi comuni a Lisp e Scheme sono la presenza del ''[[garbage collector]]'' e di date di strutture dinamiche che sono integrate col linguaggio, per esempio le liste.
Il linguaggio SML è un [[Programmazione funzionale|linguaggio funzionale]], quindi avente la caratteristica di rendere facile ed efficiente la creazione e l'uso di funzioni specializzate. In questo, SML assomiglia al [[Lisp]] o allo [[Scheme]]. Come questi, SML ha molti dialetti oltre al linguaggio standard, tra i quali si distingue [[OCaml]], che è object oriented, e ''CML'', che è ''[[concurrent]]'' o parallelo. Altri elementi comuni a Lisp e Scheme sono la presenza del ''[[garbage collector]]'' e di strutture di dati dinamiche che sono integrate col linguaggio, per esempio le liste.


Al contrario di Lisp e Scheme, SML ha un sistema di tipi che permette già al momento della compilazione la verifica che le funzioni siano usate su argomenti del tipo giusto. Inoltre, diversi dialetti di SML hanno sistemi per organizzare i programmi in moduli, con firme (''signature''), implementazioni (''structure''), e implementazioni configurabili (''functors'').
Al contrario di Lisp e Scheme, SML ha un sistema di tipi che permette già al momento della compilazione la verifica che le funzioni siano usate su argomenti del tipo giusto. Inoltre, diversi dialetti di SML hanno sistemi per organizzare i programmi in moduli, con firme (''signature''), implementazioni (''structure''), e implementazioni configurabili (''functors'').

== Voci correlate ==
* [[Programmazione funzionale]]
* [[ML programming language|ML]]


== Compilatori ed interpreti ==
== Compilatori ed interpreti ==
*[[SML/NJ]] ([http://www.smlnj.org/])
*[[SML/NJ]] ([http://www.smlnj.org/])
*[[MLton]] ([http://mlton.org/])
*[[MLton]] ([http://mlton.org/])
*[[Moscow ML]] ([http://www.itu.dk/~sestoft/mosml.html])
*[[Moscow ML]] ([https://www.itu.dk/~sestoft/mosml.html])
*[[Poly/ML]] ([http://www.polyml.org/])
*[[Poly/ML]] ([http://www.polyml.org/])
*[[MLj]] ([http://www.dcs.ed.ac.uk/home/mlj/])
*[[MLj]] ([http://www.dcs.ed.ac.uk/home/mlj/])
*[[SML.NET]] ([http://www.cl.cam.ac.uk/research/tsg/SMLNET/])
*[[SML.NET]] ([https://www.cl.cam.ac.uk/research/tsg/SMLNET/])
*[[ML Kit]] ([http://www.itu.dk/research/mlkit/index.php/Main_Page])
*[[ML Kit]] ([https://web.archive.org/web/20090208225721/http://www.itu.dk/research/mlkit/index.php/Main_Page])
*[[Hamlet]] ([http://www.ps.uni-sb.de/hamlet/])
*Hamlet ([https://web.archive.org/web/20070207093441/http://www.ps.uni-sb.de/hamlet/])

==Note==
<references/>

== Voci correlate ==
* [[Programmazione funzionale]]
* [[ML (linguaggio di programmazione)]]


== Collegamenti esterni ==
== Collegamenti esterni ==
* {{en}} [http://sml-family.org/ Standard ML Family Project] {{Webarchive|url=https://web.archive.org/web/20200220023435/http://sml-family.org/ |date=20 febbraio 2020 }} Sito di coordinamento, riferimento e archiviazione storica del linguaggio e delle sue implementazioni.
* {{en}} [http://www.dcs.napier.ac.uk/course-notes/sml/ A Gentle Introduction to ML], di Andrew Cumming
* {{en}} [http://www.dcs.napier.ac.uk/course-notes/sml/ A Gentle Introduction to ML] {{Webarchive|url=https://web.archive.org/web/20070406183902/http://www.dcs.napier.ac.uk/course-notes/sml/ |date=6 aprile 2007 }}, di Andrew Cumming
* {{en}} [http://www.dcs.ed.ac.uk/home/stg/NOTES/ Programming in Standard ML '97: An On-line Tutorial], di Stephen Gilmore
* {{en}} [http://www.dcs.ed.ac.uk/home/stg/NOTES/ Programming in Standard ML '97: An On-line Tutorial], di Stephen Gilmore
* {{en}} [http://www.cs.cmu.edu/People/rwh/introsml/ Programming in Standard ML], di [[Robert Harper]]
* {{en}} [https://web.archive.org/web/20070315111558/http://www.cs.cmu.edu/People/rwh/introsml/ Programming in Standard ML], di [[Robert Harper]]
* {{en}} [http://www.kingston.ac.uk/~ku07009/MLWorkshop/start.html ML Workshop], di Chris Reade
* {{en}} [https://web.archive.org/web/20061016072106/http://www.kingston.ac.uk/~ku07009/MLWorkshop/start.html ML Workshop], di Chris Reade
* {{en}} [http://www.standardml.org/Basis/ The Standard ML Basis Library], manuale aggiornato della libreria standard di SML
* {{en}} [http://www.standardml.org/Basis/ The Standard ML Basis Library], manuale aggiornato della libreria standard di SML


{{Controllo di autorità}}
[[Categoria:Linguaggi di programmazione]]
{{Portale|informatica}}

[[Categoria:Linguaggi di programmazione funzionali]]
[[Categoria:Linguaggi di programmazione imperativi]]
[[Categoria:ML]]

Versione attuale delle 18:39, 25 lug 2024

Standard ML
linguaggio di programmazione
AutoreRobin Milner, Mads Tofte, Robert Harper, David MacQueen
Data di origine1990
Utilizzogenerico
Paradigmifunzionale e imperativo
Tipizzazioneforte, statica, implicita
Specifiche di linguaggioSML '90[1], SML '97[2].
Estensioni comuni.sml
Influenzato daML
Ha influenzatoOCaml, Rust
Implementazione di riferimento
Sito websmlfamily.github.io/

In informatica, SML (Standard ML) è un linguaggio di programmazione derivato dal ML.

Il linguaggio ML originale era una serie di metalinguaggi ideati da Robin Milner (e dai suoi studenti) all'Università di Edimburgo per creare programmi che eseguissero la dimostrazione di teoremi (theorem provers). Questi metalinguaggi furono poi "standardizzati" per dare origine all'SML, di cui lo standard più recente risale al 1997 (The Definition of Standard ML - Revised[2]).

Il linguaggio SML è un linguaggio funzionale, quindi avente la caratteristica di rendere facile ed efficiente la creazione e l'uso di funzioni specializzate. In questo, SML assomiglia al Lisp o allo Scheme. Come questi, SML ha molti dialetti oltre al linguaggio standard, tra i quali si distingue OCaml, che è object oriented, e CML, che è concurrent o parallelo. Altri elementi comuni a Lisp e Scheme sono la presenza del garbage collector e di strutture di dati dinamiche che sono integrate col linguaggio, per esempio le liste.

Al contrario di Lisp e Scheme, SML ha un sistema di tipi che permette già al momento della compilazione la verifica che le funzioni siano usate su argomenti del tipo giusto. Inoltre, diversi dialetti di SML hanno sistemi per organizzare i programmi in moduli, con firme (signature), implementazioni (structure), e implementazioni configurabili (functors).

Compilatori ed interpreti

[modifica | modifica wikitesto]
  1. ^ (EN) The Definition of Standard ML, di Robin Milner, Mads Tofte e Robert Harper. 1990, The MIT Press, Cambridge, Massachusetts - London, England.
  2. ^ a b (EN) The Definition of Standard ML, Revised, di Robin Milner, Mads Tofte, Robert Harper e David MacQueen. 1997, The MIT Press, Cambridge, Massachusetts - London, England.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàGND (DE4295302-9
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica