Jan Vitek
· ProfessorNortheastern University · Software Engineering
Active 1975–2026
Academic metrics are sourced from OpenAlex and public funding records; values may differ from Google Scholar.
About
Jan Vitek is a professor in the Khoury College of Computer Sciences at Northeastern University, based in Boston. His research has led to advances in the theory and practice of modern programming systems, including languages such as Objective-C, JavaScript, and data analytics languages like R, with applications in information security, memory management, and real-time safety critical systems. Vitek led the team that developed the first real-time Java virtual machine to be deployed on a drone designed by Boeing. Prior to joining Northeastern University, he was a professor and faculty scholar at Purdue University, as well as a co-founder of Fiji Systems and 0xdata. He holds a leadership role in the programming language community as the former chair of the ACM Special Interest Group on Programming Languages, and has served as vice-president of AITO and of the IFIP WG 2.4 on Software Technology. Vitek also chairs the steering committee of the PLDI conference and has been involved in the steering committees of several other prominent conferences.
Research topics
- Computer Science
- Parallel computing
- Operating system
- Programming language
Selected publications
Formally verified speculation and deoptimization in a JIT compiler
Proceedings of the ACM on Programming Languages · 2021 · 38 citations
Senior authorCorrespondingJust-in-time compilers for dynamic languages routinely generate code under assumptions that may be invalidated at run-time, this allows for specialization of program code to the common case in order to avoid unnecessary overheads due to uncommon cases. This form of software speculation requires support for deoptimization when some of the assumptions fail to hold. This paper presents a model just-in-time compiler with an intermediate representation that explicits the synchronization points used f…
Contextual dispatch for function specialization
Proceedings of the ACM on Programming Languages · 2020 · 30 citations
Senior authorCorrespondingIn order to generate efficient code, dynamic language compilers often need information, such as dynamic types, not readily available in the program source. Leveraging a mixture of static and dynamic information, these compilers speculate on the missing information. Within one compilation unit, they specialize the generated code to the previously observed behaviors, betting that past is prologue. When speculation fails, the execution must jump back to unoptimized code. In this paper, we propose a…
Type stability in Julia: avoiding performance pathologies in JIT compilation
Proceedings of the ACM on Programming Languages · 2021-10-15 · 13 citations
articleOpen accessSenior authorAs a scientific programming language, Julia strives for performance but also provides high-level productivity features. To avoid performance pathologies, Julia users are expected to adhere to a coding discipline that enables so-called type stability. Informally, a function is type stable if the type of the output depends only on the types of the inputs, not their values. This paper provides a formal definition of type stability as well as a stronger property of type groundedness, shows that grou…
Reusing Just-in-Time Compiled Code
Proceedings of the ACM on Programming Languages · 2023-10-16 · 8 citations
articleOpen accessSenior authorMost code is executed more than once. If not entire programs then libraries remain unchanged from one run to the next. Just-in-time compilers expend considerable effort gathering insights about code they compiled many times, and often end up generating the same binary over and over again. We explore how to reuse compiled code across runs of different programs to reduce warm-up costs of dynamic languages. We propose to use speculative contextual dispatch to select versions of functions from an of…
Designing types for R, empirically
Proceedings of the ACM on Programming Languages · 2020-11-13 · 7 citations
articleOpen accessSenior authorThe R programming language is widely used in a variety of domains. It was designed to favor an interactive style of programming with minimal syntactic and conceptual overhead. This design is well suited to data analysis, but a bad fit for tools such as compilers or program analyzers. In particular, R has no type annotations, and all operations are dynamically checked at run-time. The starting point for our work are the two questions: what expressive power is needed to accurately type R code? and…
Recent grants
CSR: CC: Small: Collaborative Research: Language and Runtime Support for Large-Scale Data Analytics
NSF · $137k · 2014–2015
CT-ER: Controlled Declassification with Software Transactional Memory
NSF · $250k · 2007–2010
SHF: Small: Program Analysis for Data Science
NSF · $500k · 2019–2025
Frequent coauthors
- 27 shared
Filip Pizlo
Apple (United States)
- 26 shared
Christian Damsgaard Jensen
Technical University of Denmark
- 25 shared
Gerhard Goos
Lancaster University
- 25 shared
Jan Van Leeuwen
Netherlands Institute for Radio Astronomy
- 22 shared
Suresh Jagannathan
- 22 shared
David Pichardie
- 21 shared
Olivier Flückiger
Northeastern University
- 21 shared
Francesco Zappa Nardelli
Labs
Khoury College of Computer SciencesPI
Similar researchers at Northeastern University
- Resume-aware match score
- Save to shortlist
- AI-drafted outreach
See your match with Jan Vitek
PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.
- Free to start
- No credit card
- 30-second signup
