Department of Information and Computing Sciences

Departement Informatica Onderwijs
Bachelor Informatica Informatiekunde Kunstmatige intelligentie Master Computing Science Game&Media Technology Artifical Intelligence Business Informatics

Onderwijs Informatica en Informatiekunde

Vak-informatie Informatica en Informatiekunde

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, d.w.z. 13-11-2017 t/m 2-2-2018; herkansing week 16)
Timeslot:A
Deelnemers:tot nu toe 130 inschrijvingen
Rooster:De officiële roosters staan ook in Osiris
Docenten:
vormgroeptijdweekzaaldocent
college   ma 9.00-10.4546-51 RUPPERT-WIT Jurriaan Hage
 
2-4 RUPPERT-WIT
wo 11.00-12.4546-50 KBG-ATLAS
2-4 KBG-ATLAS
practicum groep 1 ma 11.00-12.4546-51 BBG-112 CLZ Adriaan Kisjes
 
2-4 BBG-112 CLZ
groep 2 ma 11.00-12.4546-51 BBG-109 CLZ Susan Brommer
 
2-4 BBG-109 CLZ
groep 3 ma 11.00-12.4546 RUPPERT-038
47-51 BBG-083
2 BBG-061
3-4 BBG-083
werkcollege groep 1 wo 9.00-10.4546 BBG-061 Frank Staals
 
47-50 DDW-1.22
2-4 DDW-1.22
groep 2 wo 9.00-10.4546-48 BBG-169 Joo Paulo Pizani Flor
  
49-50 ANDRO-C101
2-4 ANDRO-C101
Tentamen:
week: 51wo 20-12-201711.00-13.00 uurzaal: EDUC-BETA
week: 5wo 31-1-201811.00-13.00 uurzaal: EDUC-GAMMA
week: 16wo 18-4-20188.30-10.30 uurzaal: EDUC-ALFAaanvullende toets
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.
Toetsvorm:Het vak wordt beoordeeld aan de hand van twee toetsen (t1, t2) en een aantal practica (p1a, p1b, p2, and p3).

Ingeschrevenen die geen enkel deelcijfer hebben behaald krijgen een ND. Studenten die niet aan alle toetsmomenten hebben deelgenomen krijgen een NVD of een AANV, afhankelijk van hoe ze scoorden op de wel gemaakte onderdelen.

Het tentamendeelcijfer T wordt berekend als T = 0,4*t1 + 0,6*t2.

Voor het practicumcijfer P geldt dat het een gewogen gemiddelde is van de verschillende practica: P = 0,1*p1a + 0,1*p1b + 0,3*p2 + 0,5*p3.

Laat nu A = (T + P)/2.

Er kan een eindcijfer E worden bepaald als de student aan alle onderdelen heeft deelgenomen, en tevens A >= 5,5, P >= 5,0 en T >= 5,0:

  • E = 5,0, als A >= 5,5, en T < 5,0 of P < 5,0
  • E = A, anders
Als de student niet aan alle onderdelen heeft meegedaan dan
  • E = AANV, als A >= 4,0
  • E = NVD, als A < 4,0
Aanvullend practicum vindt plaats in de eerste helft van periode 3. De studenten die het vak niet direct halen horen van de docent tijdig via e-mail wat ze moeten doen als aanvullende toetsing. Deelresultaten van voorgaande jaren zijn niet inzetbaar.
Inspanningsverplichting voor aanvullende toets:Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn.
wijzigen?