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 4, dwz 9-11-2015 t/m 29-1-2016; herkansing week 12)
Timeslot:A
Deelnemers:tot nu toe 20 inschrijvingen
Rooster:De officiële roosters staan ook in Osiris
Docenten:
vormgroeptijdweekzaaldocent
college   ma 9.00-10.4546 RUPPERT-ROOD Johan Jeuring
 
47 KBG-PANGEA
48 RUPPERT-ROOD
49-50 RUPPERT-042
51 KBG-ATLAS
1 RUPPERT-ROOD
2-3 RUPPERT-042
wo 9.00-10.4546 RUPPERT-ROOD
47 EDUC-ALFA
48-51 UNNIK-GROEN
1-3 UNNIK-GROEN
practicum groep 1 wo 11.00-12.4546-51 BBG-175 CLZ
1-3 BBG-175 CLZ
groep 2 wo 11.00-12.4546-51 BBG-103 CLZ
1-3 BBG-103 CLZ
groep 3 wo 11.00-12.4546-51 BBG-109 CLZ
1-3 BBG-109 CLZ
werkcollege groep 1 ma 11.00-12.4546 BBG-083 Joo Paulo Pizani Flor
Bruno dos Santos Carvalhal
   
47 BBG-023
48-49 BBG-083
50-51 BBG-023
1-3 BBG-023
groep 2 ma 11.00-12.4546-49 RUPPERT-116 Adolfo Ochagavia Hubner
 
46 BBG-165
50-51 BBG-061
1 BBG-061
2 RUPPERT-116
3 BBG-061
Tentamen:
week: 51wo 16-12-20158.30-10.30 uurzaal: EDUC-ALFA
week: 12wo 23-3-201611.00-13.00 uurzaal: RUPPERT-116aanvullende toets
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?