ML (kieli)



Tiedot, jotka olemme pystyneet kokoamaan ML (kieli)sta, on tarkistettu ja jäsennelty huolellisesti, jotta niistä olisi mahdollisimman paljon hyötyä. Tulit luultavasti tänne saadaksesi lisätietoja hotellista ML (kieli). Internetissä on helppo eksyä sellaisten sivustojen sekamelskaan, jotka puhuvat ML (kieli)sta, mutta eivät kuitenkaan kerro sitä, mitä haluat tietää ML (kieli)sta. Toivomme, että kerrot meille kommenteissa, jos pidät siitä, mitä olet lukenut ML (kieli) alla. Jos tarjoamamme tiedot ML (kieli) eivät ole sitä, mitä etsit, ole hyvä ja kerro meille, jotta voimme parantaa tätä verkkosivustoa päivittäin.

.

ML (supistuminen Meta Language ) on toiminnallinen yleiskäyttöinen ohjelmointikieli .

Historia

ML kehitti alunperin Robin Milner ja muiden kanssa 1970-luvulla on University of Edinburgh , järjestelmään muodollisia todisteita Logic Computable toiminnot  (in) (CFL). R. Milner kohtasi vaikeuksia Lispin kirjoitusjärjestelmässä, mikä mahdollisti väärien väitteiden "todistamisen".

ML on epäpuhdas toiminnallinen kieli  : se on mahdollista ohjelmoida välttämättömällä tavalla , ja sen seurauksena toiminnoille voi aiheutua ei-toivottuja sivuvaikutuksia (kutsutaan "reunaksi"), toisin kuin puhtaasti toiminnalliset kielet, kuten Haskell .

ML standardoitiin vuonna 1983 , sitten tarkistettiin vuonna 1997  ; tuloksena olevaa kieltä kutsutaan nimellä Standard ML (SML), ja se otettiin käyttöön erityisesti New Jerseyn standardissa ML (SML / NJ). Samanaikaisesti ranskalaiset joukkueet ovat kehittäneet Camlin , joka on nyt erittäin suosittu kansainvälisessä ML-yhteisössä.

ML tyyppi järjestelmä on laajennettu ensimmäisen luokan polymorfismi on läsnä järjestelmässä F ja Jean-Yves Girard kanssa teesiä Botlan Didier ja Didier Remy 2000-luvun alussa tunnetaan MLF. Tämä kirjoittamisen laajennus on ollut ongelma vuodesta 1980 lähtien. Nykyään tätä kieltä yksinkertaistetaan yhä enemmän.

ominaisuudet

ML-ominaisuuksia ovat:

  • automaattinen muistin hallinta , yleensä jonka roskienkerääjä  ;
  • staattinen kirjoittamalla vahva ja polymorfinen  : valettu ( valettu C) hiljaista on ehdottomasti kielletty, poistamalla suuri määrä mahdollisia vikoja. Kielen tarjoama edistyksellinen tyyppijärjestelmä antaa mahdollisuuden määritellä tarkasti tyypit ja tyypeille sekä tietorakenteille sallitut toiminnot. On mahdollista määritellä yleisiä toimintoja ja kirjoittaa toimintoja, jotka ottavat parametreiksi muut toiminnot (ns. Korkeamman asteen funktiot). Tätä järjestelmää voidaan pitää (ilmaisullisempana) muunnelmana anteliaisuudesta imperatiivisissa kielissä ( C , COBOL , Pascal jne.);
  • tyypin päättely  : muuttujien tyyppiä ei tarvitse ilmoittaa. Kääntäjä pystyy havaitsemaan sen yksiselitteisesti käytön kontekstin ansiosta. Tämä tekee koodista ytimekkäämpi ja parantaa luettavuutta;
  • algebralliset datatyypit  : voidaan määritellä uusia tietorakenteita ja yhdistää ne hierarkkisessa tavalla;
  • kaavoja in Englanti  : Pattern Matching  : tämä on kyky hajottaa tyypin algebrallinen arvo sen eri muodoissa ja tarjota yhteyden kuhunkin. Tämä prosessi on enemmän tai vähemmän verrattavissa ajonaikaisen tyypin tunnistamiseen muilla kielillä, mutta se on ratkaistu staattisesti ML: ssä - eikä siten rankaise suorituksen suoritusta;
  • tehokas moduulijärjestelmä (kutsutaan rakenteiksi) ja rajapinnoista (kutsutaan allekirjoituksiksi). Rakenteet voidaan parametroida (puhumme funktoreista ) ja niillä on useita allekirjoituksia, ja päinvastoin. Konfiguraatio herättää  C ++: n "  mallipohjat " tai Ada: n tai Modula-3: n "  geneeriset  " , sillä erotuksella, että kirjoittaminen tarkistetaan täydellisesti käännettäessä;
  • poikkeusten hallintajärjestelmä.

Muita ML: n etuja ovat:

  • suuri turvallisuus ( hyvin kirjoitetut ohjelmat eivät voi mennä pieleen  ; ranskaksi: hyvin kirjoitetut ohjelmat eivät voi kaatua - Sanapelissä "hyvin kirjoitettu" voi tarkoittaa myös "hyvin kirjoitettu [näppäimistöllä]");
  • kompakti syntaksi, joka on saanut inspiraationsa matemaattisista notaatioista, mutta joka on samalla luettavissa
  • Suoritusnopeus on usein verrattavissa C ++: een, erityisesti OCaml-versiossa.

ML: n vahvuudet tekevät siitä erityisen sopivan kielten, kääntäjien ja muodollisten todistusjärjestelmien kirjoittamiseen.

Toteutukset

Tärkeimmät toteutukset ovat Standard ML ja OCaml.

Vakio ML:

  • New Jerseyn SML ( Bell Laboratories, Princeton University, Yale University, AT&T Research )
  • Moskovan ML
  • MLton ( NEC Research Labs ): erittäin vankka ja tehokas optimoiva kääntäjä
  • Poly / ML
  • Kilpailija ML

OCaml (INRIA) ei noudata SML-standardia, vaan on pikemminkin ML: n objektiivinen kehitys. Tälle kielelle on ominaista, että kääntäjä tuottaa ohjelmia, joilla on erittäin suuri suoritusnopeus, sekä suuren kirjaston. Kehittäjät ja käyttäjät muodostavat erittäin aktiivisen yhteisön tutkimuskielelle. OCaml toimi pohjana F # -kielen kehittämiselle Microsoftin .NET- alustalla.

Huomautuksia ja viitteitä

Toivomme, että keräämämme tiedot ML (kieli)sta ovat olleet sinulle hyödyllisiä. Jos näin on, älä unohda suositella meitä ystävillesi ja perheellesi ja muista, että voit aina ottaa meihin yhteyttä, jos tarvitset meitä. Jos parhaista yrityksistämme huolimatta sinusta tuntuu, että tarjoamamme tiedot _title eivät ole täysin tarkkoja tai että meidän pitäisi lisätä tai korjata jotain, olisimme kiitollisia, jos ilmoittaisit siitä meille. Parhaan ja kattavimman tiedon tarjoaminen ML (kieli)sta ja mistä tahansa muusta aiheesta on tämän verkkosivuston ydin; meitä ohjaa sama henki, joka innoitti Encyclopedia Projectin luojia, ja tästä syystä toivomme, että se mitä olet löytänyt ML (kieli)sta tältä verkkosivustolta, on auttanut sinua laajentamaan tietojasi.

Opiniones de nuestros usuarios

Oliver Ahola

On aina hyvä oppia. Kiitos artikkelista ML (kieli).

Petri Salmela

Hyvä artikkeli aiheesta _muuttuja

Karin Nevalainen

Se on hyvä artikkeli ML (kieli)_. Se antaa tarvittavat tiedot ilman ylilyöntejä