Type-Safe Metaprogramming and Compilation Techniques for Optimizing High-Level Programs

Thumbnail

Event details

Date 19.12.2019
Hour 12:0013:00
Speaker Lionel Parreaux
Location
Category Conferences - Seminars
Abstract
Software engineering practices have been steadily moving towards higher-level programming languages which improve safety, productivity, and code maintainability. However, these gains are usually made at the cost of reduced performance: higher-level languages consume more memory, run more slowly and require expensive garbage-collecting runtime systems.
The main driving force behind my research has been the idea that “we can have our cake and it eat too” with the help of advances in type systems, metaprogramming, and compilers technology. High-level programs can be made as efficient as lower-level ones if we have the tools to automatically remove all the high-level abstractions, lowering them into specialized constructs. But removing abstractions is no easy feat.
In this talk, I present Squid, a Scala metaprogramming and extensible compiler framework, which is aimed at solving such problems. Squid enables the definition of program generators, program transformers, and domain-specific rewrite rules, backed by advanced normalizing intermediate program representations. Moreover, Squid uses an extension of Scala's type system to guarantee, at compile-time of the metaprograms, that manipulated programs remain well-typed and well-scoped. This way, we can retain the safety and maintainability of high-level code, but without paying for it at runtime. Squid was used, among other things, to implement a new stream fusion algorithm and to design an efficient polymorphic linear algebra library. Moreover, it is currently being used to develop dbStage, an efficient language-integrated database system.

Short bio
Lionel Parreaux is a Ph.D. candidate at EPFL working with Christoph Koch on programming languages, compilers, and database technology. After falling in love with Scala's flexibility and expressive power, Lionel set out to create Squid, a Scala metaprogramming framework. Squid joins theory and practice to unlock the great promises of multi-stage programming, advanced compiler techniques, and domain-specific optimization. The core of Squid's type system was presented at POPL 2018, and papers on applications of Squid have been published at GPCE 2017 (receiving best paper award) and ECOOP 2019. Lionel interned at Microsoft Research Cambridge in 2018, where he started a collaboration with Simon Peyton Jones on a novel graph-based intermediate representation for optimizing functional programs.


 

Practical information

  • General public
  • Free

Contact

Tags

talk

Event broadcasted in

Share