Implementatie van programmeertalen

Website:website containing additional information
Course code:INFOIPT
Credits:7.5 ECTS (=5.25 old credit points)
Period:periode 2 (week 47 t/m 5, dwz 15-11-2004 t/m 4-2-2005; herkansing week 12)
Timeslot:B
Participants:up till now 35 subscriptions
Schedule:Dit is een oud rooster!
formgrouptimeweekroomteacher
college   di 09-1147-51,1-4 BBL-505 Atze Dijkstra
 
do 13-1547-51,1-4 BBL-505
werkcollege groep 1 di 11-1347-51,1-4 BBL-461 Joost Verhoog
 
do 15-1747-51,1-4 BBL-461
groep 2 di 11-1347-51,1-4 BBL-468 Wouter Swierstra
 
do 15-1747-51,1-4 BBL-468
Nota bene:Er is geen recente vakbeschrijving beschikbaar.
Onderstaande tekst is een oude vakbeschrijving uit collegejaar 2003/2004
Contents:Programma's worden vrijwel altijd geschreven in een hogere programmeertaal, zoals Java of Haskell. Wil je zo'n programma uitvoeren dan heb je een vertaler of een interpreter nodig. Dit vak leert je hoe vertalers en interpreters werken. Omdat het in dit vak gaat over de implementatie van programmeertalen wordt er noodzakelijkerwijs (veel) aandacht besteed aan allerlei taalconstructies, zoals functies in Haskell. Van een versimpelde programmeertaal (SL, simple language) wordt van enkele taalconstructies bekeken hoe diverse aspecten (i.h.b. codegeneratie voor een simpele stackmachine en type inferentie) berekend kunnen worden.
Literature:kan veranderen!
Dictaat
Course form:
  • Hoorcollege: 7 weken, 2 keer 2 uur per week
  • Gecombineerde werkcollege/practikumsessies: 7 weken, 4 uur per week
Er bestaat een sterke relatie tussen hoorcollegeenerzijds en werkcollege/practicum anderzijds. Tijdens het hoorcollege worden taalconcepten geanaliseerd, en wordt gekeken wat de invloed is op een implementatie van een taal. Tijdens het werkcollege/prakticum worden konkrete taalconstructies als vraagstukken behandeld, en wordt een begin gemaakt met het uitwerken van de praktikumopgaven.
Exam form:Schriftelijke tentamen, verplicht practicum. Het practicum wordt met een uitstekend, goed, voldoende of onvoldoende beoordeeld. Een uitstekend geeft 1 punt bijtelling bij het tentamen resultaat, en een goed een half punt. Bij een onvoldoende voor het practicum is men voor het vak gezakt.
Minimum effort to qualify for 2nd chance exam:Om aan de aanvullende toets te mogen meedoen is ontbreken van ten hoogte 1 toetsactiviteit toegestaan.
Description:See the IPT www for more info (and in English).
Dit vak behandelt de werking van vertalers. De nadruk ligt op de semantische analyse en de generatie van tussencode. Van de belangrijkste taal-constructie uit imperatieve en functionele talen wordt de implementatie besproken. (Scannen en parsen zitten in G&O; optimalisaties en de generatie van machinecode worden behandeld in het specialisatievak Geavanceerde Vertalers.) Van de taalconstructies behandelen we welke semantische analyse ze vergen, hoe ze op een virtuele machine worden afgebeeld en welke runtime ondersteuning ze vereisen.

De behandelde taal-constructies zijn in ieder geval: scope en visibility, typering, (geneste) routines, gebruik van variabelen, berekening van expressies.

Een overzicht van de stof:

  1. Vertalen en interpreteren
  2. Schrijven van ontleders mbv parsercombinators
  3. Attributengrammatica's en compositionaliteit
  4. Stapelarchitecturen en de afbeelding van taalconstructies daar op
  5. Statische analyse: scope, binding, type
  6. Type controle en type inferentie

Leerdoelen: Het hoofddoel van dit vak is het begrijpen van een aantal programmeertaalconcepten, onder andere door het bestuderen van machinale interpretatie en vertaling. Na afloop van het vak is de student zelfstandig in staat een eenvoudige programmeertaal te karakteriseren volgens zijn voornaamste eigenschappen, en heeft inzicht in de complexiteit die een afbeelding van een taal op een machine met zich meebrengt.

Kennisdoelen: structuur van vertalers; structuur van interpreters; implementatie van de taalconstructies statements, (geneste) routines.

Vaardigheden: Kunnen construeren van vertalers/interpreters voor eenvoudige talen gebruik makend van vertalerbouw tools.

Inzicht: abstractielagen, verlagen van abstractieniveau, interpretatie in het algemeen, abstracte machines, binding time, analyse van structuren.

wijzigen?