Compilerconstructie (B-KUL-H04G9B)

5.0 studiepunten Nederlands 40.0 Eerste semesterEerste semester Verdiepend Uitgesloten voor examencontract
Dit opleidingsonderdeel wordt dit academiejaar ingericht, maar niet volgend jaar.Dit opleidingsonderdeel wordt dit academiejaar ingericht, maar niet volgend jaar.
POC Computerwetenschappen

Inzicht verwerven in de opeenvolgende fasen van een klassiek compilatieproces, de algoritmen die er gebruikt worden en de verbanden tussen de verschillende fasen. Verstaan van de concepten van een parser-generator. Kunnen toepassen van de verworven inzichten in nieuwe compilatie-gerelateerde situaties, bijvoorbeeld andere programmeertalen of andere architecturen. Zelfstandig relevant materiaal over het compilatieproces kunnen verzamelen, dat kunnen samenvatten en presenteren. In staat zijn recent onderzoek i.v.m. compilatietechnieken te verstaan, op relevantie/ geldigheid te beoordelen en eventueel ertoe bij te dragen.

Enige kennis van laag-niveauimplementatie van programmeertalen. Er zal ook gesteund worden op algoritmisch inzicht dat vroeger werd opgedaan (i.h.b. redeneren over algoritmen), grafentheorie, kennis over stack-gebaseerde uitvoering van imperatieve talen, kennis van instructiesets van specifieke architecturen.
 
Beginvoorwaarden:
 
·        Methodiek van de Informatica of Beginselen van programmeren,
·        Computerarchitectuur en systeemsoftware of Structuur en organisatie van computersystemen.
 

Alle fasen van een klassieke compiler worden in detail behandeld: lexicale analyse en syntaxanalyse, bouwen van abstracte syntaxboom, semantische analyse, generatie van intermediaire code, opdelen in basisblokken en sporen, instuctieselectie, liveness analyse, registerallocatie en code-emissie. Verder wordt er een selectie van meer geavanceerde onderwerpen behandeld: geheugenbeheer, uitzonderingen, polymorfisme, uitgestelde uitvoering, profiling, debugging, adaptive compilatie, lusoptimisaties, net-op-tijd-compilatie ... Wat juist aan bod komt wordt bepaald door de interesse van de studenten. Hete onderzoekstopics krijgen daarbij voorrang.

Handboek

Onderwijsleeractiviteiten

4.7 sp. Compilerconstructie: hoorcollege (B-KUL-H04G9a)

4.7 studiepunten Nederlands Werkvorm: Practicum 35.0 Eerste semesterEerste semester
POC Computerwetenschappen

Alle fasen van een klassieke compiler worden in detail behandeld: lexicale analyse en syntaxanalyse, bouwen van abstracte syntaxboom, semantische analyse, generatie van intermediaire code, opdelen in basisblokken en sporen, instuctieselectie, liveness analyse, registerallocatie en code-emissie.
Verder kunnen de volgende onderwerpen behandeld worden: geheugenbeheer, uitzonderingen, polymorfisme, uitgestelde
uitvoering, profiling, debugging, adaptive compilatie, lusoptimisaties, al naar gelang van de interesse van de studenten en / of het
dwingend karakter van deze onderwerpen op een bepaald ogenblik.

Inzicht verwerven in de opeenvolgende fasen van een klassiek compilatieproces, de algoritmen die er gebruikt worden en de verbanden tussen de verschillende fasen. Verstaan van de concepten van een parser-generator. Kunnen toepassen van de verworven inzichten in nieuwe compilatie-gerelateerde situaties, bijvoorbeeld andere programmeertalen of andere architecturen. Zelfstandig relevant materiaal over het compilatieproces kunnen verzamelen, dat kunnen samenvatten en presenteren. In staat zijn recent onderzoek i.v.m. compilatietechnieken te verstaan, op relevantie/ geldigheid te beoordelen en eventueel ertoe bij te dragen.

In principe kan elk jaar van boek gewisseld worden. Op dit ogenblik zijn goede kandidaten:
·        ’Modern Compiler Implementation in C’ Andrew W. Appel (Cambridge University Press, ISBN 0-521-58653-4)
·        ’Advanced Compiler Design Implementation’ Steven S. Muchnick (Morgan Kaufmann Publ. San Francisco, ISBN 1-55860-320-4)
 
Aanvullingen over nieuwere onderwerpen zijn veelal langs het net beschikbaar.

0.3 sp. Compilerconstructie: practicum (B-KUL-H04H2a)

0.3 studiepunten Nederlands Werkvorm: Practicum 5.0 Eerste semesterEerste semester
POC Computerwetenschappen

Elke student geeft een les waarin hij/ zij een onderwerp uit het handboek - of een bijkomend onderwerp - presenteert voor de medestudenten. Dit gebeurt meestal in groepjes van twee studenten voor een les van bijna 2 uur. Zulk een les wordt onmiddellijk gevolgd door een nabespreking naar vorm en inhoud door de medestudenten en de docent. De studenten stellen ook de examenvragen op over de leerstof die in hun les is behandeld. De examenvragen worden op het einde van de cursus globaal besproken.

Evaluatieactiviteiten

Evaluatie : Compilerconstructie (B-KUL-H24G9b)

Modaliteit van de evaluatie : Mondeling met schriftelijke voorbereiding
Tijdstip : examen tijdens de examenperiode
Soort evaluatie : Open Boek

Een deel van de punten staat op het geven van een les. Het geven van de les kan niet overgedaan worden in een tweede zittijd.