Programming languages is a core field in computer science that studies the design, theory and applications of both new and existing programming languages. Topics in programming languages include compiler construction, program analysis, program transformations, meta-programming, parsing, formal semantics, program verification, and type systems.
In this course, we will read scientific journal and conference articles in the field of programming languages to get a deeper understanding of programming languages.
If you wish to do a MSc thesis in the programming languages group, we highly recommend taking this course.
By following this course, you will acquire:
We will run this seminar as a discussion seminar with meetings once a week. In each meeting, we discuss a scientific article that has been studied by the participants in advance. The following activities are required for each meeting:
You will also do a course capstone project related to a research problem, applying methods, knowledge, and techniques from the programming language literature. Possible projects could for example be implementing a small programming language using a language workbench, creating an embedded domain-specific language with a unique feature, extending an existing compiler with a new code transformation or optimization, or using a proof assistant to formalize and prove things about a language or code transformation.