Formal Systems and their Applications (B-KUL-H04H8B)
Aims
- To appreciate the role of formal systems in computer science.
- To be able to develop and to reason about formal systems.
- To apply formal systems in reasoning about software, protocols, and/or programming languages.
- To gain experience in reading formal systems to make research papers in the area more accessible.
Previous knowledge
Basic knowledge of logic and discrete mathematics in computer science. Some programming experience. At least experience with a higher level programming language such as Java.
Typically this would be covered in introductory courses in programming in a computer science curriculum.
Is included in these courses of study
- Master in de ingenieurswetenschappen: computerwetenschappen (Leuven) (Hoofdoptie Software engineering) 120 ects.
- Master in de ingenieurswetenschappen: computerwetenschappen (Leuven) (Hoofdoptie Veilige software) 120 ects.
- Courses for Exchange Students Faculty of Engineering Science (Leuven)
- Master of Engineering: Computer Science (Leuven) (Option Secure Software) 120 ects.
Activities
5 ects. Formal Systems and their Applications: Lecture (B-KUL-H04H8a)
Content
Firstly, a general introduction will be given on the use of formal systems, their applications and on the typical structure and composition of a formal system. Afterwards, a number of concrete systems will be looked at in more detail. Which systems will be dealt with precisely will depend on each year. Possible systems include:
· The lambda calculus and its application in the semantics of sequential programming languages;
· The pi calculus and its application to the verification of protocols;
· The spi calculus and its application to the specification and verification of the safety and security of distributed
· The ambient calculus and its application to the specification and verification of the safety of mobile code
· Formal type systems and their application in programming languages
· Logics with module systems and graphical logics and their application to the specification of large systems
Course material
Study cost: Not applicable (The information about the study costs as stated here gives an indication and only represents the costs for purchasing new materials. There might be some electronic or second-hand copies available as well. You can use LIMO to check whether the textbook is available in the library. Any potential printing costs and optional course material are not included in this price.)
1 ects. Formal Systems and their Applications: Laboratory Session (B-KUL-H04H9a)
Content
First, a general introduction will be given on the use of formal systems, their applications and on the typical structure and composition of a formal system. Afterwards, a number of concrete systems will be looked at in more detail. Which systems will be dealt with precisely will depend on each year. Possible systems include:
· The lambda calculus and its application in the semantics of sequential programming languages;
· The pi calculus and its application to the verification of protocols;
· The spi calculus and its application to the specification and verification of the safety and security of distributed
· The ambient calculus and its application to the specification and verification of the safety of mobile code
· Formal type systems and their application in programming languages
· Logics with module systems and graphical logics and their application to the specification of large systems
*
Practical exercises with the lecture Formal Systems and their Applications. This can include the application of one of the formal systems studied to example problems, the design of a variant of an existing formal system, or the implementation of one of the formal systems studied in the course in order to perform some experiments.
Evaluation
Evaluation: Formal Systems and their Applications (B-KUL-H24H8b)
Explanation
· An implementation project, applying the ideas covered in lectures (25%).
· A final exam.
The implementation project can not be redone for the september exam. The score on the project obtained in june is maintained for the september evaluation.