6 ECTS credits
150 u studietijd

Aanbieding 2 met studiegidsnummer 1005176BNR voor alle studenten in het 2e semester met een verdiepend bachelor niveau.

Semester
2e semester
Inschrijving onder examencontract
Niet mogelijk
Beoordelingsvoet
Beoordeling (0 tot 20)
2e zittijd mogelijk
Ja
Inschrijvingsvereisten
Je hebt ‘Structuur van computerprogramma's I’, 'Automaten en berekenbaarheid', 'Structuur van computerprogramma's II' en 'Objectgericht programmeren' gevolgd, alvorens ‘Advanced programming language concepts’ op te nemen.
Onderwijstaal
Engels
Faculteit
Faculteit Wetenschappen en Bio-ingenieurswetensch.
Verantwoordelijke vakgroep
Computerwetenschappen
Onderwijsteam
Wolfgang De Meuter (titularis)
Onderdelen en contacturen
26 contacturen Hoorcollege
26 contacturen Werkvormen en Praktische Oef.
150 contacturen Zelfwerk en -studie
Inhoud
  • Call-with-current-continuation in Scheme-like languages.
  • Introduction to macro-programming in Scheme & Racket.
  • Concrete vs. Abstract Syntax. Lex/Yacc parsers. Shift/reduce Conflicts.
  • Simple Interpreters (revision).
  • Simple Static Analysis: Lexical Addressing and Type Checking.
  • Store vs. Environemts: call-by-address, shared variables, …
  • CPS-evaluation using procedures as continuations
  • CPS-evaluators using frames as continuations
  • Call/cc Explained
  • Exception Handling Explained.
  • Multithreading en mutexes
  • A CPS-transformation: converting non-tailrecursive programs into tailrecursive programs.
  • Object-systems: objects, message forwarding, delegation, proxies
  • Classes, subclasses, inheritance and Mixins
  • Actors, active objects
  • Contemporary topics
Studiemateriaal
Digitaal cursusmateriaal (Vereist) : All transparencies and code will be made available on the Canvas system. Large portions of the course are based on “Essentials of Programming Languages” by Friedman & Wand., Canvas
Bijkomende info

Recommended background: In order to be able to start with this course, students must be acquainted with Scheme and some OOPL as well as with simple evaluators. Apart from that, a basic knowledge of programming language theory (i.e. regular languages and context-free languages) is assumed.

Leerresultaten

General Competencies

Knowledge and understanding: This course continues the bachelor’s study of interpretative/denotational semantics of programming languages. Various advanced programming language concepts are explained and formalised by means of an evaluator. After finishing the course, the student understands the fundamental properties of these concepts independently from their occurrence in mainstream/popular programming languages.

Applying knowledge and understanding: Students apply the knowledge in the context of 2 programming projects in which they will have to extend a couple of the evaluators seen in class.

Making judgements: Students are able to pinpoint the incarnation of the studied language concepts in concrete mainstream languages. They are able to go beyond the syntax and they are able to judge the quality with which the concept has been integrated in said languages.

Communication: Studenten dienen de keuzes die ze gemaakt hebben tijdens de uitvoering van projecten mondeling te kunnen verdedigen en toelichten op een beredeneerde wijze.

Lifelong Learning Skills: Students understand the foundations of advanced programming languages features. They will immediately recognise any occurrence of the studied features in future languages.

Beoordelingsinformatie

De beoordeling bestaat uit volgende opdrachtcategorieën:
Examen Mondeling bepaalt 50% van het eindcijfer

ZELF Praktijkopdracht bepaalt 50% van het eindcijfer

Binnen de categorie Examen Mondeling dient men volgende opdrachten af te werken:

  • Oral exam met een wegingsfactor 1 en aldus 50% van het totale eindcijfer.

    Toelichting: During the oral exam the full report will be evaluated and possibly adjusted.

Binnen de categorie ZELF Praktijkopdracht dient men volgende opdrachten af te werken:

  • Full project met een wegingsfactor 1 en aldus 50% van het totale eindcijfer.

    Toelichting: The exam consists of a project and an oral exam. For the project the students have to report about their own extensions to the Pico virtual machine. In the course of the lecture an assignment is formulated for which the goal is to extend both the syntax and semantics of Pico with a new programming concept. Students are then expected to model this concept for the meta-circular specification of Pico and then cary these over to the actual virtual machine. Students have to show that these modifications are fully functional through a number of test cases. The report has to document each of the steps taken in the process of modifying the virtual machine and has to be accompanied with the full source code of the modified version of the virtual machine.

Aanvullende info mbt evaluatie

The exam consist of an oral presentation/defense of 2 programming assignments where the students needs to present his/her project and answer questions about his/her approach in the context of the course theory. Failing to submit 1 of the projects implies no grade for the entire course. No partial exemptions will be granted for the course.

Toegestane onvoldoende
Kijk in het aanvullend OER van je faculteit na of een toegestane onvoldoende mogelijk is voor dit opleidingsonderdeel.

Academische context

Deze aanbieding maakt deel uit van de volgende studieplannen:
Bachelor in de computerwetenschappen: Standaard traject