6 ECTS credits
180 h study time
Offer 1 with catalog number 4019837ENR for all students in the 2nd semester at a (E) Master - advanced level.
– Dependently typed programming en computer-verified proving in Agda
+ Inductive data types with parameters and indices
+ Dependent pattern matching
+ The Identity type
+ Negation
+ Proofs by induction
– Verified and secure compilation: a selection of compiler passes are studied, for example:
+ Register allocation
+ Call lowering
+ Stack spilling
+ Closure conversion
These compiler passes are formalised and studied abstractly and/or in Agda, studying verified and secure compilation properties and proofs.
None
- The student can explain how a dependently typed programming language can be used for implementing verified algorithms.
- The student is able to formalise and prove simple concepts and results in the Agda dependently-typed programming language.
- The student understands the concepts of verified and secure compilation and formal properties that express them and can apply them to and illustrate them with examples.
- The student can explain, implement and manually execute model versions of the compiler passes studied in this course.
- The student can explain the correctness and security properties and arguments for the compiler passes studied in this course.
- The student is able to make modifications and corrections to correctness arguments and security proofs for model compiler passes, either verbally or implemented in Agda.
The final grade is composed based on the following categories:
Other Exam determines 100% of the final mark.
Within the Other Exam category, the following assignments need to be completed:
The evaluation consists for 100% of a course project in which the students formalise and prove concepts and proofs in Agda, related to verified and/or secure compilation.
The students defend the project orally with the teacher during the exam period.
During this defence, their understanding of the concepts taught in this course and their programming and proving skills in Agda will be tested, based on their solution of the course project.
This offer is part of the following study plans:
Master in Applied Sciences and Engineering: Computer Science: Artificial Intelligence (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Multimedia (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Software Languages and Software Engineering (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Data Management and Analytics (only offered in Dutch)
Master of Applied Sciences and Engineering: Computer Science: Artificial Intelligence
Master of Applied Sciences and Engineering: Computer Science: Multimedia
Master of Applied Sciences and Engineering: Computer Science: Software Languages and Software Engineering
Master of Applied Sciences and Engineering: Computer Science: Data Management and Analytics