PhD in Computer Science, 2020
Master-level Engineering Degree, 2014
I am an Assistant Professor at the HKUST CSE department since February 2021. I am looking for students to join my research group! Please contact me (first-name dot last-name at gmail.com) if you’d like to work on something related to programming languages, type systems, or compiler optimization.
I obtained my PhD in 2020 at EPFL, in the Data Analysis Theory and Applications Laboratory (DATA), where I created the Squid type-safe metaprogramming library for Scala.
MLscipt [GitHub] is a small research language combining functional and object-oriented programming features while supporting HM-style global type inference. In particular, MLscript supports first-class union and intersection types (with some limitations) as well as pattern matching on classes, and can encode extensible sum and records types.
MLscript is an evolution from Simple-sub [GitHub], a reformulation of the “algebraic subtyping” approach to type inference in the presence of subtyping.
SuperType is meant to be a functional-first programming language with an expressive dependent type system, which still gives to programmers all the tools needed to write very efficient programs.
This language is in active development, and has not been released to the public yet. It will feature new type-safe memory-management primitives as well as an advanced and extensible specializing compiler.
We are in the process of designing a new technique to perform deforestation (data structure fusion) on functional programs. Lumberhack is an implementation of this technique for Haskell, currently being developed as a Glasgow Haskell Compiler (GHC) plugin.
The name of the project is a play on the words “lumberjack” and “hack”, since it is a framework for deforestation
Squid [GitHub] is a type-safe metaprogramming and extensible compilation framework for Scala 2, mainly developed during my PhD at EPFL. This framework improved on the state of the art in several ways, including the ability to pattern-match on open program fragments while retaining scope safety and the ability to customize the intermediate representation of manipulated programs. Squid has influenced the development of the new metaprogramming interface of the Scala 3 compiler: https://docs.scala-lang.org/scala3/guides/macros/quotes.html
Lionel Parreaux. The Simple Essence of Algebraic Subtyping: Principal Type Inference with Subtyping Made Easy. ICFP 2020.
Lionel Parreaux, Antoine Voizard, Amir Shaikhha, and Christoph E. Koch. Unifying Analytic and Statically-Typed Quasiquotes. POPL 2018.
Lionel Parreaux, Amir Shaikhha, and Christoph E. Koch. Quoted Staged Rewriting: A Practical Approach to Library-Defined Optimizations. GPCE 2017.
Spring 2022 — COMP6613E: Theory of Types and Programming Languages
Fall 2021 — COMP4901U: Computer Language Processing and Compiler Design
GPCE Best Paper Award (for the Quoted Staged Rewriting paper), 2017.
EPFL EDIC PhD program fellowship, 2014.
I have a (seldom updated) blog called Well-Typed Reflections.