PLDI 2014
tutorial: Polyglot Extensible Compiler Framework
12 June 2014
Organizers:
- Stephen Chong (Harvard University)
- Andrew C. Myers (Cornell University)
- Nathaniel Nystrom (University of Lugano)
Polyglot is a highly extensible compiler front-end for the Java programming language. Over the last 10 years, many researchers have used Polyglot to develop Java language extensions. Polyglot has recently been extended to support modern Java features such as generics and annotations. The Accrue interprocedural analysis framework has been developed as a plug-in to Polyglot. The Accrue framework simplifies implementation of interprocedural analyses of programs written using Java or Java language extensions.
Tutorial participants will learn how to use Polyglot to effectively create Java language extensions, and how to use Accrue to create analyses for programs in Java or Java language extensions. Specifically, we will cover:
- Extending syntax to add new language features
- Adding and extending compiler passes
- Extending the type system
- Effectively using the Polyglot design patterns and quasiquoting
- Java 5+ support (generics, annotations, enums, ...)
- Creating novel pointer analyses in Accrue
- Creating object-sensitive interprocedural analyses in Accrue
Tutorial format
The format for this one-day tutorial held as part of PLDI 2014 is as follows:- Introduction to Polyglot (2.5 hours + 1 hour programming exercise/lab)
- Syntax, compiler passes, type system, design patterns, quasiquoting
- Interprocedural Analysis in Polyglot (1.5 hours + 1 hour programming exercise/lab)