I work on aspects of programming language technologies including but not limited to software engineering, real-time and embedded computing, and virtual machine. I dabble in information security, program analysis, concurrent and distributed programming and bioinformatics.
Projects
DynJS Understanding the Dynamics of JavaScript and automatic benchmark generation with JSBench.
TransactTransactional memory research.
oSCJ An open-source implementation of the Safety-Critical Java based on the JSR-302
CDx The CDx benchmark suite is an open source real-time application benchmark for Java and C
Ovm An open-source virtual machine framework for Java
STMBench A benchmark for evaluating software transactional memory implementations.
PrismJ Software for a ScanEagle UAV with Java on board
MBA Open source model-based protein backbone resonance assignment software in Java
Fiji Fiji VM is high-performance real-time Java virtual machine
AJ Data-centric concurrency control with the AJ compiler
FlexoTasks Very low latency real time programming in Java
Thorn A dynamically-typed concurrent language with lightweight isolated processes
Service
Events
- PLDI '12 General Chair, Conference on Programming Language Design and Implementation
- LCTES '11 General Chair, Languages, Compilers and Tools for Embedded Systems
- VEESC
Organizer, NSF Workshop on Dynamic Languages for Scientific Computing
- ISMM '10
General Chair, International Symposium on Memory Management
- TOOLS'10 Program Chair, TOOLS Europe Conference.
- TiC '10
Organizer, International Summer School on Trends in Concurrency

- ESS '10 Organizer, ECOOP Summer School
- JTRES '10
Program Chair, Java Technologies for Real-Time and Embedded Systems

- TMW Organizer, Purdue-NSF Transactional Memory Workshop
Program Committees
- FOOL13 Workshop on Foundations of Object-Oriented Languages.
- PLDI'13 Conference on Programming Language Design and Implementation.
- ECOOP'13 European Conference on Object Oriented Programming.
- HotPar'13 USENIX Hot Topics in Parallelism.
- GPCE'13 International Conference on Generative Programming: Concepts & Experiences.
- ICOOOLPS'13
- WASDeTT International Workshop on Academic Software Development Tools and Techniques.
Activities
I sit on a few steering committees, expert groups, and editorial boards:
- JOT Editor in Chief, The Journal of Object Technology
- JSR-302 Member, Safety Critical Java Technology Expert Group
- Member, International Advisory board for the CominLabs.
- WG 2.4 Member, IFIP Working Group 2.4, Software Implementation Technology
- LCTES Member, Steering Committee for Languages, Compilers, and Tools for Embedded Systems
- ISMM Chair, Steering Committee for International Symposium on Memory Management
- AITO Vice President, Association Internationale pour les Technologies Objets
- JTRES Member, Steering Committee for Java Technologies for Real-time and Embedded Systems
- TRANSACT Member, Steering Committee for SIGPLAN Workshop on Transactional Computing
- STOP Member, Steering Committee for SIGPLAN Workshop on Scripts to Programs
Honors
- University Faculty Scholar, 2011.
- Microsoft Research Award, SEIF, 2011.
- Undergraduate Advising Award, 2011.
- IBM Faculty Award 2006
- NSF CAREER Award 2001
Invited Talks
- Microsoft Faculty Summit'11. The Rise of Dynamic Languages for Scientific Computing (Video)
- MVD'10 Is Java Ready for Real-time?, Midwest Verification Day, Invited talk (PDF)
- APLWACA'10 Of Scripts and Programs Tall tales, Urban Legends and Future Prospects, Analysis and Programming Languages for Web Applications and Cloud Applications, Invited Talk
- DLS'09 Of Scripts and Programs Tall tales, Urban Legends and Future Prospects, Dynamic Languages Symposium, Invited Talk (PDF)
- TOOLS'09 Programming models for Real-time and Concurrency, TOOLS-EUROPE, Keynote (PDF)
- PLACES'08 Programming Models for Concurrency and Real-time, Programming Language Approaches to Concurrency and Communication-cEntric Software, Invited Talk
- FCS'05 Language-based Intrusion Detection, Foundations of Computer Security
- FOSAD'04 Coordination and Security, International School on Foundations of Security Analysis and Design (PDF)
[-] Past Events
- TiC'08 Organizer, Second International Summer School on Trends in Concurrency
- WG2.4 Organizer, IFIP WG2.4 meeting in Bormio
- ECOOP'08 Program Chair, European Conference on Object-Oriented Programming
- COORD'07 Program Chair, International Conference on Coordination Models and Languages
- TiC'06 Organizer, First International Summer School on Emerging Trends in Concurrency
- TRANSACT'06 General Chair, Languages, Compilers and Hardware for Transactional Computing
- VEE'05 Program Chair, First International Conference on Virtual Execution Environments
- TfT'05 Organizer, Dagstuhl Workshop on Types for Tools
- PLDI'05 Tutorial Chair, Conference on Programing Language Design and Implementation
[-] Past Program Committee Membership
- ISORC International Symposium on Object and component-oriented Real-time Computing, 2012.
- EMSOFT International Conference on Embedded Software, 2011.
- GCM International Workshop on Green Computing Middleware, 2011.
- PLASTIC Workshop on Programming Language And Systems Technologies for Internet Clients, 2011
- RTAS IEEE Real-Time and Embedded Technology and Applications Symposium, 2011.
- VEE'11 International Conference on Virtual Execution Environments, 2011.
- RTSS IEEE Real-Time System Symposium, 2009, 2010, 2011.
- CC International Conference on Compiler Construction, 2003, 2008, CC'12
- CSF IEEE Computer Security Foundations Symposium, 2008
- COORD International Conference on Coordination Models and Languages, 2005, 2009
- ICFP International Functional Programming Conference, 2005
- OOPSLA Object-Oriented Programming Systems, Languages, and Applications, 2000, 2004, 2007, 2008
- ESOP European Symposium on Programming, 2002, 2007, 2009, 2011
- ECOOP European Conference on Object-Oriented Programming, 1998, 2000, 2001, 2002, 2003, 2007, 2008, 2009, 2010, 2013.
- DATE DATE Conference, Model Based Design of Embedded Systems track, 2010
- PLDI Programming Language Design and Implementation, 2002, 2010, 2013.
- POPL Principles of Programming Languages, 2001, 2008, 2011
- DLS Dynamic Language Symposium Conference, 2010
- ICALP International Conference on Automata, Languages and Programming, 2000
- PODC Symposium on Principles of Distributed Computing, 20101
- ASA/MA Agent Systems and Applications/ Mobile Agents, 2001
- AISB Symposium on Software mobility and adaptive behaviour, 2001
- CD Component Deployment, 2002, 2004
- EUC IEEE/IFIP International Conference on Embedded and Ubiquitous Computing, 2009, 2010
- FOCLASA Foundations of Coordination Languages and Software Architectures, 2007
- MASS Symposium on Multi-Agent Security and Survivability, 2004
- PPPJ International conference on Principles and Practice of Programming in Java, 2006
- SACMAT Symposium on Access Control Models and Technologies, 2001
- AIOOL International Workshop on Abstract Interpretation of Object-oriented Languages, 2005
- ACP4IS Workshop on Aspects, Components, and Patterns for Infrastructure Software, 2003, 2004
- Bytecode Workshop on Bytecode Semantics, Verification, Analysis and Transformation, 2007, 2008
- CORDIE Workshop on Concurrency, Real-Time and Distribution in Eiffel, 2006
- CPS Workshop on Cyber-Physical Systems, 2008, 2009
- CSJP Workshop on Concurrency and Synchronization in Java Programs, 2004
- DOSW Distributed Object Security Workshop, 1999
- FTfJP Workshop on Formal Techniques for Java-like Programs, 2005
- HCSP Workshop on High Confidence Software Platforms for Cyber-Physical Systems, 2006
- ICOOOLPS Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, 2006
- IWMSE International Workshop on Multicore Software Engineering, 2010
- IWACO International Workshop on Aliasing, Confinement and Ownership, 2003, 2007
- IWAOOS Intercontinental Workshop on Aliasing in Object-Oriented Systems, 1999
- JTRes Workshop on Java Technologies for Real-Time and Embedded Systems, 2008, 2007, 2006, 2005, 2004, 2003, 2008, 2009, 2010
- JFLA Journées Francophones des Langages Applicatifs, 2000, 1998, 1995
- MOS Mobile Objects Systems Workshop, 2004, 2003, 2002, 2001, 2000, 1999, 1998, 1997, 1996, 1995
- PLACES Programming Language Approaches to Concurrency and Communication-cEntric Software, 2009, 2010, 2011,
- 2012
- PLAS Workshop on Programming Languages and Analysis for Security, 2007
- OOPS Object Oriented Programming Languages and Systems 2005, 2004
- SecCo Workshop on Security Issues in Concurrency, 2003, 2004, 2007
- VMIL Workshop on Virtual Machines and Intermediate Languages, 2009
Students and Collaborators
Current PhD Students
Fadi Meawad, Gregor Richards, Scott Carr, Lei Zhao
Current Postdoctoral Associates
Gustavo Petri
Collaborators
Josh Auerbach, David Bacon, David Clarke, Giuseppe Castagna, Yvonne Coady, Toni Cunei, Grzeg Czakowski, Ananth Grama, Dan Grossman, John Field, Christian Grothoff, Rachid Guerraoui, Maurice Herlihy, David Holmes, Tony Hosking, Urs Hoelzle, Nigel Horspool, Suresh Jagannathan, Andreas Krall, Doug Lea, Jeremy Manson, Floreal Morandat, James Noble, Nate Nystrom, Manuel Oriol, Jens Palsberg, Jean Privat, Jesper Spring, Martin Schöberl, Bill Pugh, Peter Sewell, Rok Strinsa, Frank Tip, Olga Vitek, Dominic Duggan, Vivek Sarkar, Francesco Zappa Nardelli, Tian Zhao, Tobias Wrigstad
[-] Graduated students
Filip Pizlo, PhD'12 (Apple), Jacques Thomas, PhD'11 (Amazon), Jesper H. Spring, PhD'08@EPFL Rajeev Gopalakrishna, PhD'06 (Intel Research), Krzysztof Palacz, PhD'04 (Sun Research), Bogdan Carbunar, PhD'05 (Motorla Research Labs),
Brandon Hill, Msc'13 (Oracle), Daniel Tang, MSc'11 (Google) Johan Ostlund, MSc'09 (UUPSALA), Hiroshi Yamauchi, MSc'07 (Google), Jason Baker, MSc'07 (Google), Andrei Madan, MSc'04 (Medtronics), Jason Fox MSc'03 (JPL), Gergana Markova MSc'03 (IBM), James Liang MSc '02, (Sandia)
Brian Burg BSc'10 Rob Gevers BSc'09, Zachary Wiggins, Andrew McClure, Paul Kuliniewicz, BSc'03, Javed Siddique, BSc'03, Allen Montz BSc'03, Ben Titzer BSc '02 (UCLA), Chris Willmore, Adam Lugowski, Josh Moore BSc'04, Wenchang Liu, BSc'03,
[-] Past Postdoctoral Associates
Marek Prochazka 03-04 (SciSys), Michael Richmond 02-03 (IBM Research), Jeremy Manson 05-06 (Google), Jean Privat 06-07 (Université du Quebec), Toni Cunei 03-08 (EPFL), Tobias Wrigstad 07-09 (Stockholm University), Tomas Kalibera 07-09 (Charles University), Sylvain Lebresne 08-09, Christian Hammer 09-11 (U Saarland), Ales Plsek 09-11 (Oracle) Floreal Morandat 11-12 (U Bordeaux), Nicholas Kidd 10-12 (Google), Gustavo Petri 12-13.
Teaching
- CS240 C Programming, Fall 11, Spring 12
- CS490/CS590 Software for Embedded Systems, Spring 11, Spring 12
- CS565 Programming Languages, Fall 08, Spring 10
- CS590V Embedded and Real-time Computing, Fall 09
- CS590V Principle of Programming Languages Seminar Spring 08, Fall 08, Spring 09
- CS307 Software Engineering, Spring 09
- CS456 Programming Languages, Fall 07, Spring 04, Spring 01
- CS510 Software Engineering, Fall 06, Spring 05, Spring 00, Fall 00, Spring 02
- CS591Y Software Systems Seminar, Fall '06
- CS590V Virtual Execution Environments, Spring 06
- CS406 Software Engineering, Spring '05, Spring '03
- CS590V Resource-aware computing, Spring '03.
- CS690V Security for Mobile Code, Fall '99
Grants
Active awards
- NSF CCF 1048398: Foundations of Data-Centric Concurrency Control. 2010-2011.
- NSF OCI 1047962: A Tracing VM for Statistical Computing. (with Olga Vitek) 2010-2013.
- NSF CCF 0916310: Verifying and Validating Safety Critical Java. 2009-2012. (with Gary Leavens)
- NSF CCF 1019518: Certified Garbage Collection for Highly Responsive Systems. 2008-2011. (with Tony Hosking)
- NSF CCF 0811631: Unified Open Source Transactional Infrastructure. 2008-2011. (with Suresh Jagannathan, Dan Grossman, Maurice Herlihy)
- NSF CNS 0720652: High-throughput Real-time Stream Processing in Java. 2007-2010.
- NSF CNS 0958465: A Computational Infrastructure for Scalable Transactional Memory Abstractions. (with Suresh Jagannathan) 2010.
- NSF OCI 1042905: Virtual Execution Environments for Scientific Computing Workshop. 2010.
- NSF CCF 1024387: Third International Summer School on Trends in Concurrency. 2010.
Short Biography
Jan Vitek is a Professor of Computer Science and University Faculty Scholar. He chairs the ACM Special Interest Group on Programming Languages (SIGPLAN). He is currently a visiting Professor at Stanford University and Visiting Scholar at Oracle Labs. He is the vice chair of AITO and of the IFIP WG 2.4 on compilers and software technologies and was the Chief Scientist at Fiji Systems. He holds a PhD from the University of Geneva and a MSc from the University of Victoria. He works on various aspects of programming languages including software engineering, real-time and embedded computing, concurrency and information security. Prof. Vitek led the Ovm project which resulted in the first open source real-time Java virtual machine to be successfully flight-tested a real-time Java virtual machine in 2005. He has since investigated virtual machine technologies for safety-critical embedded systems in avionics and aerospace. With Noble and Potter, Vitek proposed the notion of ownership for alias control, also known as ownership types. He chaired PLDI, ISMM and LCTES and was program chair of ECOOP, VEE, Coordination, and TOOLS. Vitek has started a number of successful workshop series, including MOS on Mobile Objects, IWACO, on aliasing and confinement, and TRANSACT on transactional memory. He is on the steering committees of ECOOP, JTRES, TRANSACT, PLDI and LCTES. He is a member of the JSR-302 Safety Critical Java expert group.
Miscellaneous
Advice on graduate studies. How to get your paper accepted at OOPSLA, rejection advice. Graduate advice by Micheal Ernst. Tips on interviewing.
Is there any risk of brain damage? Eternal Sunshine of the Spotless Mind |
Site design by James Koster, 6ix Shooter Media, Pos3idon.
