Everyday life and critical aspects of our economy, defense, and government depend on software, and software, in turn, depends on high-level programming languages and their efficient implementations. Ever since Fortran and its automatic compiler in the late 50s, language implementation techniques have been central to computer science, and have relied on well-defined theoretical contributions and central principles. The focus of this summer school is the mix or interplay of theory and practice in language implementation mechanisms, such as compilers or run-time systems. The main aim of this summer school is to enable participants to conduct research in the area, thereby contributing to improved software.
By presenting a range of material, from foundational work on language implementation theory, to advanced techniques based on cutting-edge research, to experience with applying the theory, we will provide a unique opportunity for participants to understand the current research landscape. Lectures will include discussions of core ideas such as abstract interpretation, static program analyses, and intermediate representations (e.g., continuations) and their connection to language semantics. The lectures will explore how these ideas can be adapted to yield efficient and general programming language implementations, at the level of a compiler or a run-time system.
At all times, material will be presented at a tutorial level that will help graduate students and researchers from academia or industry understand the critical issues and open problems confronting the field. We hope that students will be able to apply what they learn at the school in their own research. We believe that by doing so the school will have a broad impact on the next generation of programming language, compiler and software engineering researchers in industry and academia.
The course is open to anyone interested. Prerequisites are knowledge of programming language implementation (at the level usually covered in undergraduate classes on programming languages or compilers) as well as general knowledge of programming languages at the level provided by an undergraduate survey course. Our primary target group is first- or second-year graduate students. We also expect attendance by faculty members who would like to conduct research on this topic or introduce new courses at their universities.