Skip to content

About Me

My name is Maxime Chevalier-Boisvert. I’ve just completed a PhD degree with a concentration in compiler design at the Université de Montréal. My thesis was focused on Just-In-Time (JIT) machine code optimization techniques for dynamic programming languages (e.g.: JavaScript, Python, etc.). I’m also interested in programming language design, machine learning, 3D rendering, game development, music, sound synthesis, microcontrollers and electronics. This blog is an outlet for me to talk about my research, technological interests, hobbies and ideas. Most of my recent programming work is open source and available on GitHub.


Chevalier-Boisvert, M. & Feeley, M. Interprocedural Type Specialization of JavaScript Programs Without Type Analysis. European Conference on Object-Oriented Programming 2016 (PDF, LIPIcs).

Chevalier-Boisvert, M. On the Fly Type Specialization without Type Analysis. PhD thesis. Université de Montréal. December 2015 (PDF).

Chevalier-Boisvert, M. & Feeley, M. Simple and Effective Type Check Removal through Lazy Basic Block Versioning. European Conference on Object-Oriented Programming 2015 (PDF, LIPIcs,

Chevalier-Boisvert, M., Lavoie, L., Feeley, M. & Dufour, B. Bootstrapping a self-hosted research virtual machine for JavaScript: an experience report. Dynamic Language Symposium 2011 (PDF, ACM).

Chevalier-Boisvert, M., Hendren, L. & Verbrugge, C. Optimizing MATLAB through just-in-time specialization. Compiler Construction 2010 (PDF, Springer).

Chevalier-Boisvert, M. McVM: an optimizing virtual machine for the MATLAB programming language. Master’s thesis. McGill University. August 2009 (PDF).


ZetaVM, a Platform for Programming Language Innovation. PolyConf. July 2017 (slides).

Interprocedural Type Specialization of JavaScript Programs Without Type Analysis. ECOOP. July 2016 (slides).

Simple and Effective Type Check Removal through Lazy Basic Block Versioning. ECOOP. July 2015 (slides, video, poster).

Lazy, Incremental JIT Compilation with Basic Block Versioning. Northeastern University. December 2014 (slides).

Refactoring JIT Compilation. DConf. May 2014 (slidesvideo).

Dynamic Languages need Dynamic Compilers. mloc.js. February 2014 (slides, video).

Fast and Dynamic. Strange Loop. September 2013 (slides, video).

Higgs, an Experimental JIT Compiler written in D. DConf. May 2013 (slides, video).

Higgs, a Monitoring JIT for JavaScript. Air Mozilla. February 2013 (slides, video).

  1. John Wait permalink

    since you work on compilers, thought you might find this article by Rob Pike to be of interest:

    “…I was pair programming with Ken Thompson on an on-the-fly compiler for..”

  2. What features in Ruby/Python/Javascript are particularly bad for type inference?

    • Dynamic loading of code, unrestricted eval, dynamic addition and removal of object fields. The JavaScript “undefined” type and the lack of exceptions thrown on errors.

  3. Congrats on the JavaScript compiler work!

  4. Dear Maxime, i am working on a new deductive computer language that outputs to Adobe AiR and Javascript, so that the graphical interactive programs you write can run on 5 different platforms: Mac, Win, iOS, ANdroid, and Web browser. It has many innovative features (is mostly declarative). I will need a compiler writer soon enough, would like to discuss this project with you.

    • I’m not available at the moment as I already took a full-time job offer, but I’d be happy to give you compiler design advice if you need any. You can message me on twitter @Love2Code or on LinkedIn if you want to exchange contact information.

  5. Mark Schwarzmann permalink

    Hi Maxime. I just wanted to point out that your Gravatar profile is somewhat out of date: “Currently pursuing a Ph.D. degree”? :)

  6. Impressed with your Gradient project and work on artificial life in Javascript. Was trying to understand it at a deeper level but new to genetic algorithms, wondered if you had made a tutorial or blog post unpacking that project more deeply, showing how all the pieces fit together etc. Would be very helpful. Thanks

Trackbacks & Pingbacks

  1. Typed Shapes Paper Submitted | Pointers Gone Wild
  2. Zeta’s JITterpreter | Pointers Gone Wild

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: