Modern programming languages support software development in challenging application areas and for complex hardware architectures. Advanced type systems help identify problems without executing the software. Compilers (semi-)automatically optimize the software so that it efficiently exploits the hardware. This Programmierpraktikum introduces modern technologies for designing and implementing programming languages. For this purpose, a practical task is set, which is to be solved by the students independently in a team using selected technologies. The joint task serves to implement the methods and knowledge acquired in the basic studies of computer science. This takes place under conditions that are as realistic as possible, including planning, implementation, management, coordination and presentation of results of the concrete team task.

Learning Outcomes

Graduates of this module have knowledge and practical experience in the field of programming language design and implementation. The focus is on software design, programming and implementation of programming languages, e.g. in (domain-specific) compilers, but also IDEs, debuggers and other tools for software development. Project work in a team additionally teaches social and project management skills.