Ma tête

Welcome to my website. I'm now a Ph.D. candidate in Computer Science under the direction of François Pottier in the Gallium team at INRIA.

I'm currently busy with Mezzo, a programming language in the tradition of ML, which tracks ownership and aliasing in an accurate manner. Thanks to a careful balance between static verification and runtime checks, we believe Mezzo enables the programmer to write more powerful programs, especially in a concurrent setting.

You can contact me at firstName DOT lastName AT I also have a phone and a real address, these are in my résumé. My GPG key is available here. Alternatively, gpg --recv 4F7509A0 will do the trick.

Thesis defense

Practical information


The language I'm working on, Mezzo, has its own homepage, which features examples, a link to the source of the prototype and the proof of soundness, etc.

  • Jonathan Protzenko. Mezzo, the language of the future. PhD Dissertation (current status: pending final review). [ PDF ]
  • Thomas Braibant, Jonathan Protzenko, Gabriel Scherer. ArtiCheck: well-typed generic fuzzing for module interfaces. ML'14. [ PDF ]
  • Armaël Guéneau, François Pottier, and Jonathan Protzenko. The ins and outs of iteration in Mezzo. HOPE'13. [ bib | PDF ]
  • François Pottier and Jonathan Protzenko Programming with permissions in Mezzo. ICFP'13. [ PDF ]
  • Jonathan Protzenko The implementation of the Mezzo type-checker (note: this is superseeded by part IV of my PhD dissertation). IFL'13. [ PDF ]
  • Jonathan Protzenko Illustrating the Mezzo programming language. FSFMA'13. [ PDF ]
  • Jonathan Protzenko and François Pottier. Programming with permissions: the Mezzo language (extended abstract). ML'12. [ PDF ]
  • Jonathan Protzenko. Translating a subset of OCaml into System F. Master's thesis, 2010. [ PDF ] [ source code ]
  • Jonathan Protzenko. Communities and modularity, a study on complex networks. Undergrad's thesis, 2008. [ PDF ] [ Subgraphs used in the paper:,,,,,, ]


  • The design of Mezzo, a new programming language ICFP'13. [ PDF ]
  • The implementation of Mezzo IFL'13. [ PDF ]
  • Why design a new programming language? FSFMA'13. [ PDF ]
  • What is type-checking? INRIA Junior Seminar, June 2013. [ PDF |  Video ]
  • An introduction to Mezzo (short). ML'12. [ PDF | YouTube ]
  • An introduction to MezzoPDF ]
With Mathieu Feuillet and Emanuele Leoncini, I kept the Junior Seminar running at Rocquencourt for two years. The seminar is now in the good hands of Elisa Schenone, Pauline Traynard and Jacques-Henri Jourdan. [ The seminar's web page ]


  • 2013-2014 I worked on the online algorithms course from École Polytechnique, on Coursera.
  • 2011-2013 I was a teaching assistant for INF431 and « Modal Web » at École Polytechnique
  • 2010-2011 I was a teaching assistant for INF311 at École Polytechnique


  • When I get headaches from working on type systems, I maintain the OCaml installer for Windows. Not sure what's worse. [ download ] [ on GitHub ]
  • I also fix bugs on OCaml itself when I have some spare time.


I'm a Mozilla contributor although I haven't had much time available lately. I usually hack on Thunderbird, but I've been known to fix a few bugs in Gecko and Firefox. I also maintain a few addons.

  • Les Cahiers du programmeur XUL, Eyrolles, 2005.
    I wrote a book about developing Mozilla addons. I was younger, back then. The book is available in French and German. [ the book's website ]
  • Thunderbird Conversations
    I assumed it would take me two months to write this addon, it took me two years. [ download it ] [ on GitHub ]
  • Manually Sort Folders
    Another addon, because I like to have my folders tidy. [ download it ] [ on GitHub ]
  • Latex It!
    Render LaTeX formulas in your emails as images, so that the recipient sees a nice formula instead of raw LaTeX code. [ download it ] [ on GitHub ]
  • Compose for Thunderbird, abandoned
    Re-implements the composition workflow, including the UI, and the sending backend, in Javascript, by leveraging CKEditor. That's just too much work for a single person, so I abandoned the project. Plus, I'm trying to get a life. [ download it ] [ on GitHub ]
  • Thunderbird Stdlib
    A toolkit that you can build upon for your Thunderbird addons. Used heavily by Conversations and Compose. [ on GitHub ]
  • FOSDEM 2011
    I gave a talk on developing Thunderbird Addons at FOSDEM 2011, in Brussels. I don't know where the slides are. Anyway, the ones from the MozCamp are better.
  • MozCamp 2011
    I gave a talk on developing Thunderbird Addons at MozCamp 2011, in Berlin. [ demo addons ] [ the presentation ]
  • FOSDEM 2012
    I gave a talk on developing Thunderbird Addons at FOSDEM 2012, in Brussels. [ demo addons ] [ the presentation ]

Course work

Various school-related documents.

  • A survey on Itanium, 2008.
    Itanium's a cool architecture, but no one's using it. [ PDF ]
  • A survey on register allocation, 2009.
    Register allocation is a complicated problem. [ PDF ]
  • Cours de mathématiques supérieures, 2006, condensé de mon cours de maths sup. [ PDF ]


  • A stylesheet for OCamldoc.
    Because I don't like the default style. [ an OCaml module ] [ sample documentation ] [ the stylesheet ]
  • A stylesheet for LaTeX documents.
    It gives a very condensed, two-column layout for article document classes. It also adds a \part command that gives the book-like heading seen in my reports (see here for an example). The heading was initially an attempt to reproduce the style of the French LaTeX pour l'impatient book. [ the stylesheet ]
  • Implementation of the Seam Carving algorithm.
    Known as liquid rescale in popular image editing programs. [ OCaml source code ]
  • An IRC client written in PHP-GTk.
    When I was in high school, I would stay up all night during summer break and code like a madman. Those were the days. [ the result ]
  • Former version of this website.
    Contains a link to all previous versions. [ go ]