ACM Charles P. "Chuck" Thacker Breakthrough in Computing Award
USA - 2020
citation
For the development of just-in-time compilation techniques that enabled fast and feature-rich web services on the internet
Beginning with the Ph.D. thesis he completed in 1994, Franz has been exploring the use of just-in-time (JIT) dynamic compilation and optimization, focusing not only on static languages such as Java, but also on dynamically typed languages. Initially such dynamic languages were primarily used in research and academic settings, but that changed when JavaScript was adopted for creating web services. JavaScript enabled the creation of websites that had application-like behavior, rather than the more static websites enabled by HTML. JavaScript, like other dynamic languages, was initially interpreted, and that led to poor performance. By inventing a new compilation technique, developing a JIT compiler for JavaScript based on this new technique, and then collaborating with Mozilla to incorporate it into the Firefox browser, Franz enabled massive growth in the use of JavaScript, now the world's most heavily used programming language.
The idea of JIT dynamic compilation goes back decades and was initially used for a variety of statically-typed languages. In the 1970s, researchers at Xerox PARC used JIT compilation for Smalltalk, a dynamically typed language. In the 1980s, researchers at Stanford and Sun explored the use of JITs for Self, a dynamically typed, prototype-based language, similar to JavaScript. Franz made several important contributions beyond the earlier work that greatly increased the practicality of JIT compilation. First, rather than optimizing entire functions, he introduced a technique that optimizes only the loops of a program, using a structure called a "trace tree" to represent alternative paths through a loop that are discovered and subsequently translated incrementally. Second, Franz developed a JIT compiler that could be applied in a variety of settings, including those with more limited CPU or memory resources. With these techniques, Franz's JIT compiler could often achieve performance improvements of 5-10x on JavaScript, which was critical to its wide-ranging adoption, and the transformation of web applications. The vast majority of websites today use JavaScript, and all browsers include a JavaScript execution engine. Franz's technology helped make this transformation possible.
ACM Fellows
USA - 2015
citation
For contributions to just-in-time compilation and optimization and to compiler techniques for computer security.