ML: Aan de slag met metaprogrammering

Openbaarmaking: Uw steun helpt de site draaiende te houden! We verdienen een verwijzingsvergoeding voor sommige van de services die we op deze pagina aanbevelen.


ML staat voor “meta-language” en ML is een lid van de familie van programmeertalen voor algemene doeleinden.

Zoals veel vroege programmeertalen, werd ML door de academische gemeenschap gemaakt voor onderzoeksdoeleinden en de kenmerken ervan beïnvloedden veel programmeertalen die in de voetsporen volgden..

Wat is ML?

ML is een multi-paradigma, uitgebreide functionele programmeertaal. Het wordt ook vaak bestempeld als een ‘onzuivere’ functionele taal, omdat het bijwerkingen toelaat. De essentiële functies van ML zijn gebouwd op een functionele kern.

Het is vooral handig voor meta-programmeren – het schrijven van programma’s die andere programma’s manipuleren, en dat is het oorspronkelijke doel van ML. ML staat bekend om het gebruik van het Hindley-Milner-type systeem dat automatisch de typen van de meeste uitdrukkingen kan toewijzen zonder expliciete type-annotaties.

ML wordt gebruikt voor een breed scala aan programma’s:

  • Wetenschappelijke toepassingen;
  • Stelling bewijst;
  • Analyzers, compilers, programmeertalen;
  • Toepassingen van financiële systemen;
  • Bio-informatica en genealogische databases.

ML wordt ook gebruikt in het onderwijs, in inleidende programmeercursussen om de basisprogrammeerlogica en -methoden te demonstreren.

Korte geschiedenis van ML

De ML-programmeertaal is in de jaren zeventig ontwikkeld door Robin Milner en zijn collega’s aan de Universiteit van Edinburgh tijdens hun werk aan de Logic for Computable Functions (LCF) – een interactieve geautomatiseerde stellingbewaker. LCF is geïmplementeerd in ML en geïntroduceerd in 1972. De syntaxis van ML is geïnspireerd op de ISWIM-programmeertaal.

ML is verder uitgegroeid tot verschillende programmeertalen, die allemaal deel uitmaken van de ML-familie. De twee belangrijkste dialecten van vandaag zijn Standard ML (SML) en OCaml. Functies en ideeën uit ML hebben veel andere talen beïnvloed, zoals Cyclone, Elm, Nemerle, Haskell, C ++ en andere.

Kenmerken

Dit is een strikt getypeerde taal, gebruikmakend van het Hindley-Milner-type systeem om de typeveiligheid te garanderen. Als gevolg hiervan veroorzaakt een goed getypeerd ML-programma geen runtime-typefouten. De syntaxis en stroomregeling is fundamenteel verschillend van C-type talen, dus je zult geen triviale mapping tussen C- en ML-code vinden.

ML beschikt over een automatisch geheugenbeheersysteem via garbage collection, waarbij geheugen automatisch wordt toegewezen en vrijgemaakt door de compiler. Parametrisch polymorfisme wordt ondersteund, wat betekent dat u een enkele polymorfe functie kunt schrijven die een parameter van elk compatibel type kan opnemen.

ML heeft eersteklas functies en lexicale sluitingen, waardoor het heel eenvoudig is om meerdere functies samen te stellen, een taak die erg ingewikkeld kan zijn in imperatieve programmeertalen.

ML ondersteunt ook polymorfe recursieve datatypes met patroonvergelijking en heeft een uitstekend modulesysteem dat is gecentreerd rond structuren en handtekeningen. Het gebruikt voornamelijk gretige evaluatie, wat betekent dat alle subuitdrukkingen altijd worden geëvalueerd, terwijl luie evaluatie nog steeds kan worden bereikt door het gebruik van sluitingen.

Aan de slag met ML

Als u eerdere ervaring hebt met programmeermethoden en logica, zou het beginnen met ML-programmeren geen grote uitdaging moeten zijn. Als ML echter je eerste kennismaking met programmeren is, moet je beginnen met eenvoudige tutorials en cursussen, voordat je verder gaat met meer veeleisende.

Uw ML-ontwikkelomgeving

U zult uiteraard uw eigen persoonlijke ML-ontwikkelomgeving moeten opzetten. We raden aan de standaard ML van New Jersey (SML / NJ) -derivaat en compiler te gebruiken, aangezien dit de eerste en meest populaire compiler is voor de ML-programmeertaal.

SML / NJ wordt momenteel ondersteund op de drie grote besturingssystemen: Mac OS X, Linux en Windows. Met andere woorden, u zou geen problemen moeten hebben met het uitvoeren van een ML-ontwikkelomgeving op vrijwel elke computer.

Het installeren van ML op deze platforms is eenvoudig en goed gedocumenteerd. Kies eenvoudig de juiste download voor uw platform op de SML / NJ-downloadpagina en volg de installatie-instructies.

Middelen

ML bestaat al jaren, dus er is geen gebrek aan verschillende middelen. Als het gaat om het leren van de taal, is dit altijd een goede zaak. Maar houd er rekening mee dat veel ML-bronnen vrij oud zijn en mogelijk verouderd zijn.

We hebben onze zoektocht gericht op relevante en relatief recente tutorials, e-books en interactieve cursussen. Zelfs oude bronnen kunnen echter nuttig zijn als u net begint.

ML Cursussen en tutorials

Je concentreren op theoretische bronnen is een goede manier om je eerste stappen in ML-programmeren te zetten, maar als je de basis onder de knie hebt, moet je overschakelen naar praktische voorbeelden.

Om het volledige potentieel van ML echt te waarderen, moet je het in actie zien. Als u eenmaal vertrouwd bent met de basissyntaxis, kunt u uw training naar een hoger niveau tillen en praktische handleidingen en tutorials uitproberen:

  • Programmeren in Standard ML ’97: een online zelfstudie door Stephen Gilmore: dit is een gratis ML-zelfstudie waarin belangrijke concepten in de ML-taal worden geïntroduceerd en worden geïllustreerd met korte voorbeelden. Het is verkrijgbaar in verschillende formaten.
  • Programmeren in Standard ML (pdf) door Robert Harper: dit is een gratis ML-tutorial gemaakt voor de Carnegie Mellon University-cursus ‘Computer Science 12-212: Principles of Programming’.
  • A Gentle Introduction to ML door Andrew Cumming: dit is een gratis cursus met een introductie en zeven lessen over ML met vele andere nuttige bronnen.
  • Tips voor informatici over standaard ML (herzien) (pdf) door Mads Tofte: dit is een gratis boek, met tal van nuttige tips over ML-programmering.

Extra middelen

De volgende stap is om je te concentreren op uitgebreidere bronnen, zoals praktische tutorials met veel voorbeeldcode. Deze praktijkvoorbeelden zullen u helpen bij het begrijpen van ML-programmering. We hebben een paar van de meest genoemde genoemd:

  • Standard ML van de gebruikershandleiding van New Jersey: dit is een online gids voor programmeren in Standard ML met SML / NJ, die alles omvat, van de installatie van SML / NJ tot FAQ, speciale functies, compiler-structuur en bibliotheken.
  • De Standard ML Basis Library is een online referentie voor de Standard ML Basis Library.

Boeken

We hebben ook een paar boeken over ML-programmering toegevoegd. Veel van deze e-books worden aanbevolen door ML-docenten en zijn handig als referentie terwijl u aan praktische handleidingen en tutorials werkt:

  • ML voor de werkprogrammeur, 2e editie door L C Paulson: dit richt zich op het uitleggen hoe te programmeren in de ML-taal en het aanleren van de grondbeginselen van functioneel programmeren.
  • Elementen van ML Programming, ML97 Edition (2e editie) van Jeffrey D Ullman: dit boek biedt een zeer toegankelijke, stapsgewijze inleidende tutorial over ML-programmeren en een volledige verwijzing naar en uitleg van geavanceerde functies. Er is geen voorkennis van ML of functionele programmering vereist.
  • The Little MLer door Felleisen en Friedman: dit boek introduceert degenen die nieuw zijn in programmeren, evenals degenen die ervaring hebben met andere programmeertalen, met de principes van typen, berekening en programmaconstructie.

Vooruit gaan

Zoals met alle programmeertalen, zal ML uiteindelijk worden geleerd door te doen. Zorg er dus voor dat uw ontwikkelomgeving is ingesteld en begin met coderen met behulp van deze bronnen. Succes!

Leer meer over andere interessante programmeertalen.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map