Talen en compilers

Website:website met extra informatie
Vakcode:INFOB3TC
Studiepunten:7.5 ECTS
Historie:Dit vak is de opvolger van Grammatica's en ontleden (INFOGONT). Je kunt maar een van beide vakken voor je examen opvoeren
Periode:periode 2 (week 46 t/m 5, dwz 11-11-2013 t/m 31-1-2014; herkansing week 11)
Timeslot:C
Deelnemers:tot nu toe 56 inschrijvingen
Rooster:Let op: m.i.v. het collegejaar 2008/2009 is het rooster te vinden in Osiris
Docenten:
vormgroeptijdweekzaaldocent
college   ma 13.15-15.0046-51 BBL-079 Johan Jeuring
 
2-4 BBL-079
do 9.00-10.4546-51 BBL-079
2-4 BBL-079
practicum          Mark Lekkerkerker
Wout Elsinghorst
  
groep 1 di 15.15-17.0046-51 BBL-103 CLZ Jeroen Bransen
 
2-4 BBL-103 CLZ
groep 2 di 15.15-17.0046-51 BBL-106 CLZ Jeroen Bransen
 
2-4 BBL-106 CLZ
werkcollege          Mark Lekkerkerker
Wout Elsinghorst
  
groep 1 di 13.15-15.0046-51 BBL-023 Jeroen Bransen
 
2-4 BBL-023
Inhoud:Veel programma's hebben als input een rij symbolen. Deze rij symbolen heeft vrijwel altijd een structuur. Voorbeelden van zulke rijen symbolen zijn programma's in een of andere programmeertaal, over het internet in pakketvorm verstuurde informatie, of informatie die door een programma in een file is weggeschreven met de bedoeling door een ander programma weer ingelezen te worden.

Dergelijke structuren worden beschreven met behulp van grammatica's. Vanuit deze beschrijving kunnen automatisch programma's gegenereerd worden die deze structuur herkennen. Dit herkenningsproces is een belangrijke component van veel programma's (bijvoorbeeld vertalers), en ook de beschrijving van het vertaalproces maakt gebruik van dergelijke grammaticale formalismen.

Door speciale klassen van grammatica's te gebruiken kun je al dan niet meer van de structuur uitdrukken, of van tevoren garanderen dat je de structuur gemakkelijk (bijvoorbeeld in lineaire tijd) kunt herkennen.

In dit vak leer je zelf grammatica's te ontwerpen, hoe hiervoor ontleders te construeren en hoe de resultaten van deze ontleders verder te gebruiken. Zo zul je zien hoe je code kunt genereren voor een gedeelte van de programmeertaal C#. Grammatica's spelen een centrale rol in de Informatica (XML Schema's, database schema's, Game Maker Language, etc), dus dit vak biedt ook conceptuele ondersteuning voor de rest van je studie.

In dit vak leer je:

  • structuren (formules, termen, ...) te beschrijven met behulp van grammatica's (context-vrije, reguliere)
  • structuren te herkennen of ontleden in lijsten van symbolen
  • grammatica's te analyseren om te zien of bepaalde eigenschappen gelden
  • componenten zoals ontleders, analyses en code generatoren samen te stellen
  • al deze technieken toe te passen in het construeren van verschillende soorten programma's
  • beredeneren waarom sommige problemen wel of niet met formalismen zoals context-vrije grammatica's of eindige toestandsautomaten beschreven kunnen worden
We maken gebruik van de programmeertaal Haskell om de verschillende componenten te beschrijven. Voorkennis op het niveau van het vak Functioneel programmeren is nodig.
Literatuur:Diktaat dat we online aan zullen bieden.
Inspanningsverplichting voor aanvullende toets:Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn.
wijzigen?