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 10-11-2014 t/m 30-1-2015; herkansing week 11)
Timeslot:D
Deelnemers:tot nu toe 16 inschrijvingen
Rooster:De officiële roosters staan ook in Osiris
Docenten:
vormgroeptijdweekzaaldocent
college   wo 13.15-15.0046-51 BBG-079 Johan Jeuring
 
2-4 BBG-079
vr 9.00-10.4546-51 BBG-165
2-4 BBG-165
practicum groep 1 wo 15.15-17.0046-51 BBG-112 CLZ
2-4 BBG-112 CLZ
groep 2 vr 13.15-15.0046-51 BBG-175 CLZ
2-4 BBG-175 CLZ
werkcollege groep 1 vr 11.00-12.4546 BBG-079 Joo Paulo Pizani Flor
Marcell van Geest
Wout Elsinghorst
    
48-51 BBG-079
2-4 BBG-079
Nota bene:Er is geen recente vakbeschrijving beschikbaar.
Onderstaande tekst is een oude vakbeschrijving uit collegejaar 2013/2014
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:kan veranderen!
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?