An Analysis of the Redesign of the CoffeeScript Compiler

Very few of the contributors that wrote the original implementation of the compiler that defined the CoffeeScript programming language had any prior experience with compilers. After over two years of hacking on the original compiler, it became difficult to work with, and actually started to hinder the development of the language itself. Michael Ficarra, a long-time collaborator on the project, realised that people had an incentive to fund the development of a newer, better compiler. In exchange for enough cash to keep his student loan creditors at bay, he applied the techniques he learned throughout his research career developing compilers to a new CoffeeScript compiler. In this talk, Michael will display the benefits of the formal compilation and declarative specification strategies he used, and describe how he implemented them in his rewrite of the CoffeeScript compiler.

Michael can be described as having a passion for defining transformations of all sorts, so he is naturally very comfortable around compilers and functional programming languages. He is best known for his significant contributions to the CoffeeScript programming language, its original compiler, and his KickStarter-funded rewrite. As one of Github's most active users, he is an influential member of the online OSS and ECMAScript communities. Michael enjoys PLT discussion, Adi Shamir is his favourite cryptographer, Alan Turing his favourite computer scientist, and his personal ideals and philosophical outlooks align closely with those of Bertrand Russell.