Passer au contenu

/ Department of Computer Science and Operations Research

Je donne

Rechercher

Navigation secondaire

Soutenance de thèse - Olivier Melançon

Bonjour à tous,

Vous êtes cordialement invité.e.s à la soutenance de thèse d'Olivier Melançon le mardi 13 septembre à 10h30 EST.

Title : Highly Optimizing Ahead-of-Time Compilers for Dynamic Languages

Date: Mardi 13 octobre à 10h30 

Salle:  Pavillon André-Aisenstadt, 2920 Ch. de la Tour, au AA-3195

 

Jury

Président Eugène Syriani
Directeur de rechercheMarc Feeley
Co-directeur de rechercheManuel Serrano, INRIA Université Côte d'Azur
Membre du jurySébastien Roy
Examinateur externeMatthew Flatt,  University of Utah

Résumé:

Efficient compilation of dynamic languages is commonly believed to require information available only at run-time, which has led to increasingly complex just-in-time compilers. This thesis shows that an ahead-of-time compiler can achieve a similar effect by duplicating code to optimize for multiple run-time contexts. Ahead-of-time compilers traditionally rely on abstract interpretation, but for dynamic languages, whose behavior varies widely with run-time inputs, the resulting approximations are too broad to be useful. Ahead-of-time Basic Block Versioning recovers precision by duplicating basic blocks during abstract interpretation, specializing each copy for a distinct context, and merging copies when a limit is reached to bound code growth. This thesis presents two algorithms: Static Basic Block Versioning, which specializes code within each function, and Lambda Versioning, which carries this specialization across function boundaries using multi-entry/multi-return functions. In some cases, Lambda Versioning generates optimally type-specialized programs, that is, programs that check the type of their input only once at run-time, then switch to a specialized code path that requires no further type checks.