Cold is an Inria/University of Montreal associated team studying compilation techniques for dynamic languages.
Cold is co-funded by Inria and the University of Montreal.
Dynamic programming languages offer flexibility and generally facilitate rapid software development. Programs written using dynamic languages are typically slower, consume more memory, and are less energy efficient. This is especially concerning, considering that dynamic languages such as Python and JavaScript are extensively used. JavaScript is the main language for implementing web applications, while Python is the most used language for software development today and in particular in the very active field of Machine Learning and Artificial Intelligence.
To solve this issue, our team researches optimizing compilation techniques for dynamic languages. Such techniques generate optimized code when translating a program from its source code to machine code. This provides better performance without having to sacrifice the flexibility of dynamic languages. Furthermore, since novel optimizing techniques can be integrated into existing compilers, they can improve current programs with no additional effort by the application programmers.
In the last decades, the discovery of tracing just-in-time compilation and advances in partial evaluation have significantly improved the performance of dynamic languages. However, work remains to be done to bridge the gap between dynamic and static languages, a performant yet less flexible family of languages. Bridging this gap will enable significant savings in execution time and energy efficiency globally.