Academic Programs: Master of Science in Informatics
Workload: 6 ECTS
Domain-specific languages (DSLs) provide programming abstractions tailored to particular application domains, help to ensure program correctness, and enable optimizations. DSLs are used to simplify the design of complex systems and to exploit features of emerging technologies. This course focuses on applying programming languages to solving real-world problems. Students learn to design languages from the ground up. By studying existing DSLs, we learn to analyze and compare different language features. Starting with a particular application domain, we discuss how to extract the requirements for that domain, and how to use those requirements to inform the design of a DSL. We study tools and techniques for implementing compilers and interpreters and apply those techniques to the implementation of our own DSLs.