Jan Vitek
April 21, 2023

Most code is executed more than once. If not entire programs then at least significant portions, such as libraries, remain unchanged from one run to the next. Yet, just-in-time compilers expend considerable effort gathering insights about the behavior of code they compiled many times before only to generate the same native binaries. This talk explores techniques for reusing compiled code and cut down on the warm-up costs of dynamic languages. I will explain the basics of just in time compilation and present an approach for reusing code across program runs. I’ll introduce speculative contextual dispatch as a run-time technique to select a version of a function from an off-line curated code repository. The code repository is a persistent database of previously compiled versions of functions indexed by the contexts under which they were compiled. To improve performance, the repository is curated by an off-line automated process that removes redundant executables.

About Jan Vitek

Jan Vitek is a Professor of Computer Science at Northeastern University. He holds degrees from the University of Geneva and Victoria. He works on topics related to the design and implementation of programming languages. In the Ovm project, he led the implementation of the first real-time Java virtual machine to be successfully flight-tested. Together with Noble and Potter, he proposed a concept that became known as Ownership Types. He was one of the designers of the Thorn language. He worked on gaining a better understanding of the JavaScript language and is looking at how to support scalable data analysis in R. Prof. Vitek chaired ACM SIGPLAN; he was the Chief Scientist at Fiji Systems and the founding team at H2O.ai, a vice chair of AITO; a vice chair of IFIP WG 2.4, and chaired SPLASH, PLDI, ECOOP, ISMM and LCTES and was program chair of ESOP, ECOOP, VEE, Coordination, and TOOLS.