ML: Kom i gang med metaprogrammering

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


ML står for “metasprog”, og ML er medlem af den generelle programmeringssprogfamilie.

Som mange tidlige programmeringssprog blev ML skabt af det akademiske samfund til forskningsformål, og dens funktioner påvirkede mange programmeringssprog, der fulgte i dens fodspor.

Hvad er ML?

ML er et multi-paradigme, udvidet funktionelt programmeringssprog. Det er også ofte mærket som et “urent” funktionelt sprog, fordi det tillader bivirkninger. MLs vigtige funktioner er bygget på en funktionel kerne.

Det er især nyttigt til metaprogrammering – skrivning af programmer, der manipulerer andre programmer, og det er MLs oprindelige formål. ML er velkendt for sin anvendelse af Hindley-Milner-typesystemet, der automatisk kan tildele typerne af de fleste udtryk uden eksplicitte annotationer.

ML bruges til en lang række programmering:

  • Videnskabelige anvendelser;
  • Sætning beviser;
  • Analysatorer, kompilatorer, programmeringssprog;
  • Finansielle systemapplikationer;
  • Bioinformatik og genealogiske databaser.

ML bruges også i uddannelse i introduktionsprogrammeringskurser for at demonstrere grundlæggende programmeringslogik og -metoder.

Kort historie om ML

ML-programmeringssprog blev udviklet i 1970’erne af Robin Milner og hans kolleger på University of Edinburgh under deres arbejde med Logic for Computable Functions (LCF) – en interaktiv automatiseret teorem prover. LCF blev implementeret i ML og introduceret i 1972. MLs syntaks var inspireret af ISWIM-programmeringssprog.

ML udviklede sig yderligere til flere programmeringssprog, som alle er en del af ML-familien. De to vigtigste dialekter i dag er Standard ML (SML) og OCaml. Funktioner og ideer fra ML påvirkede mange andre sprog som Cyclone, Elm, Nemerle, Haskell, C ++ og andre.

Funktioner

Dette er et strengt typesprog, der bruger Hindley-Milner-typesystemet for at sikre typesikkerhed. Som et resultat forårsager et veltypet ML-program ikke fejl i runtime-typen. Dens syntaks og flowkontrol er grundlæggende forskellig fra sprog af C-type, så du finder ikke trivial kortlægning mellem C- og ML-kode.

ML har et automatisk hukommelseshåndteringssystem gennem affaldsindsamling, hvor hukommelse automatisk tildeles og frigøres af compileren. Parametrisk polymorfisme understøttes, hvilket betyder, at du kan skrive en enkelt polymorf funktion, der kan tage en parameter af enhver kompatibel type.

ML har førsteklasses funktioner og leksikale lukninger, hvilket gør det meget nemt at komponere flere funktioner, en opgave, der kan være meget kompliceret i bydende programmeringssprog.

ML understøtter også polymorfe rekursive datatyper med mønstermatchning og har et fremragende modulsystem centreret omkring strukturer og underskrifter. Den bruger primært ivrig evaluering, hvilket betyder, at alle subexpressions altid evalueres, mens doven evaluering stadig kan opnås ved hjælp af lukninger.

Kom godt i gang med ML

Hvis du har tidligere erfaring med programmeringsmetoder og logik, bør det ikke være meget af en udfordring at komme i gang med ML-programmering. Men hvis ML er din første introduktion til programmering, skal du starte med grundlæggende tutorials og kurser, inden du går videre til mere krævende.

Dit ML-udviklingsmiljø

Du bliver selvfølgelig nødt til at oprette dit eget personlige ML-udviklingsmiljø. Vi foreslår at bruge standard ML i New Jersey (SML / NJ) derivat og compiler, da det er den første og mest populære kompilator til ML programmeringssprog.

SML / NJ understøttes i øjeblikket på de store tre operativsystemplatforme: Mac OS X, Linux og Windows. Med andre ord skal du ikke have problemer med at køre et ML-udviklingsmiljø på næsten enhver computer.

Installation af ML på disse platforme er ligetil og veldokumenteret. Vælg blot den rigtige download til din platform på SML / NJ download-siden og følg installationsvejledningen.

Ressourcer

ML har eksisteret i årevis, så der er ingen mangel på forskellige ressourcer. Når det kommer til at lære sproget, er dette altid en god ting. Men husk, at mange ML-ressourcer er ret gamle og kan være forældede.

Vi fokuserede vores søgning på relevante og relativt nyere tutorials, e-bøger og interaktive kurser. Selv gamle ressourcer kan imidlertid være nyttige, hvis du lige er i gang.

ML Kurser og tutorials

Fokus på teoretiske ressourcer er en god måde at tage dine første skridt i ML-programmering på, men når du først har mestret det grundlæggende, skal du skifte til praktiske eksempler.

For virkelig at værdsætte det fulde potentiale ved ML, bliver du nødt til at se det i aktion. Når du er tilpas med grundlæggende syntaks, kan du tage din træning til næste niveau og prøve praktiske guider og tutorials:

  • Programmering i Standard ML ’97: En online-tutorial af Stephen Gilmore: dette er en gratis ML-tutorial, der introducerer vigtige koncepter på ML-sproget og illustrerer dem med korte eksempler. Det fås i forskellige formater.
  • Programmering i Standard ML (pdf) af Robert Harper: dette er en gratis ML-tutorial oprettet til Carnegie Mellon University-kurset “Computer Science 12-212: Principles of Programming.”
  • En blid introduktion til ML af Andrew Cumming: dette er et gratis kursus, der indeholder en introduktion og syv lektioner om ML med mange andre nyttige ressourcer.
  • Tips til datalogikere om standard ML (revideret) (pdf) af Mads Tofte: dette er en gratis bog med mange nyttige tip til ML-programmering.

Yderligere ressourcer

Det næste trin er at fokusere på mere detaljerede ressourcer, såsom praktiske tutorials med masser af prøvekode. Disse eksempler i det virkelige liv hjælper din forståelse af ML-programmering. Vi udpegede et par af de mest refererede dem:

  • Standard ML i New Jersey Brugervejledning: dette er en online guide til programmering i Standard ML ved hjælp af SML / NJ, der dækker alt fra installation af SML / NJ til ofte stillede spørgsmål, specielle funktioner, kompilatorstruktur og biblioteker.
  • Standard ML Basis-biblioteket er en online-reference til Standard ML-basisbiblioteket.

Bøger

Vi har også inkluderet et par bøger om ML-programmering. Mange af disse e-bøger anbefales af ML-undervisere, og de kommer godt med som reference, mens du arbejder på praktiske guider og tutorials:

  • ML for Working Programmer, 2. udgave af L C Paulson: dette fokuserer på at forklare, hvordan man programmerer på ML-sproget, og underviser i de grundlæggende elementer i funktionel programmering.
  • Elements of ML-programmering, ML97-udgave (2. udgave) af Jeffrey D Ullman: denne bog giver en meget tilgængelig, trin-for-trin introduktionsvejledning om ML-programmering og en komplet henvisning til og forklaring på avancerede funktioner. Ingen forudgående viden om ML eller funktionel programmering er påkrævet.
  • Den lille MLer af Felleisen og Friedman: denne bog introducerer dem, der er nye inden for programmering, såvel som dem, der har erfaring med andre programmeringssprog, til principperne om typer, beregning og programkonstruktion.

Bevæger sig fremad

Som med alle programmeringssprog læres ML i sidste ende ved at gøre. Så få dit udviklingsmiljø oprettet, og ved hjælp af disse ressourcer, start kodning. Held og lykke!

Lær om andre interessante programmeringssprog.

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