Standard ML: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
date di strutture in strutture di dato; non so se chi ha scritto il passaggio da me modificato intendesse riferirsi in qualche modo a una dipendenza temporale ("date"), ma tenderei ad escluderlo.
PertBot (discussione | contributi)
m correggo link a ML (linguaggio di programmazione) (via JWB)
 
(16 versioni intermedie di 8 utenti non mostrate)
Riga 1:
{{Linguaggio di programmazione
|nome = StanrdardStandard ML
|immagine = <!-- Solo nome file -->
|didascalia =
Riga 12:
|influenzato_da = [[ML (linguaggio di programmazione)|ML]]
|ha_influenzato = [[OCaml]], [[Rust (linguaggio di programmazione)|Rust]]
|sito_web = http://sml-family.org
}}
In [[informatica]], '''SML''' ('''''S'''tandard '''ML''''') è un [[linguaggio di programmazione]] derivato dall<nowiki>'</nowiki>dal '''ML'''.
 
L'Il linguaggio ML originale era una serie di MetaLinguaggimetalinguaggi 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'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 datodati 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'').
 
==Note==
<references/>
 
== Voci correlate ==
* [[Programmazione funzionale]]
* [[ML programming language]]
 
== Compilatori ed interpreti ==
*[[SML/NJ]] ([http://www.smlnj.org/])
*[[MLton]] ([http://mlton.org/])
*[[Moscow ML]] ([httphttps://www.itu.dk/~sestoft/mosml.html])
*[[Poly/ML]] ([http://www.polyml.org/])
*[[MLj]] ([http://www.dcs.ed.ac.uk/home/mlj/])
*[[SML.NET]] ([httphttps://www.cl.cam.ac.uk/research/tsg/SMLNET/])
*[[ML Kit]] ([https://web.archive.org/web/20090208225721/http://www.itu.dk/research/mlkit/index.php/Main_Page])
*[[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 ==
* {{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] {{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}} [https://web.archive.org/web/20070315111558/http://www.cs.cmu.edu/People/rwh/introsml/ Programming in Standard ML], di [[Robert Harper]]
* {{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
 
{{Controllo di autorità}}
{{Portale|informatica}}
 
[[Categoria:Linguaggi di programmazione funzionali]]
[[Categoria:Linguaggi di programmazione imperativi]]
[[Categoria:ML]]