Implementatie van programmeertalen

Website:website containing additional information
Course code:INFOIPT
Credits:7.5 ECTS
Period:periode 2 (week 46 t/m 5, dwz 13-11-2006 t/m 2-2-2007; herkansing week 11)
Timeslot:A
Participants:up till now 33 subscriptions
Schedule:Dit is een oud rooster!
formgrouptimeweekroomteacher
college   ma 09-1146-51,2-4 BBL-471 Johan Jeuring
 
wo 09-1146-51,2-4 BBL-471
werkcollege          Arthur van Leeuwen
 
groep 1 ma 11-1346-51,2-4 BBL-468
wo 11-1346-51,2-4 BBL-468
groep 2 ma 11-1346-51,2-4 BBL-461
wo 11-1346-51,2-4 BBL-461
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:Dictaat. Ik zal hetzelfde dictaat gebruiken als vorig jaar. In een aparte file, verkrijgbaar via de website van het vak, zal ik een aantal correcties opnemen.
Course form:
  • Hoorcollege: 9 weken, 2 keer 2 uur per week (waarschijnlijk zal er niet op alle collegegelegenheden college worden gegeven)
  • Gecombineerde werkcollege/practikumsessies: 9 weken, 2 keer 2 uur per week
Er bestaat een sterke relatie tussen hoorcollege enerzijds en werkcollege/practicum anderzijds. Tijdens het hoorcollege worden taalconcepten geanalyseerd, en wordt gekeken wat de invloed is op een implementatie van een taal. Tijdens het werkcollege/prakticum worden concrete 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 moet de oorspronkelijke uitslag minstens 4 zijn.
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-constructies uit imperatieve en functionele talen wordt de implementatie besproken. (Scannen en parsen zitten in G&O) 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?