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 herkennisproces is
een
belangrijk 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
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 Java. Grammatica's spelen een centrale rol in de Informatica
(XML Schema's,
database
schema's, etc), dus dit vak biedt ook conceptuele
ondersteuning voor de rest van je studie.
http://www.cs.uu.nl/education/vak.php?vak=INFOB3TC&jaar=2008