Presentations and Conference Talks
2022
Deoptless: Speculation with Dispatched On-Stack Replacement and Specialized Continuations.
Olivier Flückiger, Jan Ječmen, Sebastián Krynski, Jan Vitek.
In PLDI'22: ACM SIGPLAN Conference on Programming Language Design and Implementation.

2021
Type Stability in Julia: Avoiding Performance Pathologies in JIT Compilation.
Artem Pelenitsyn, Julia Belyakova, Benjamin Chung, Ross Tate, Jan Vitek.
In OOPSLA'21: Proc. ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications: Software for Humanity.
acm_artifact_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

Promises Are Made To Be Broken: Migrating R to Strict Semantics.
Aviral Goel, Jan Ječmen, Sebastián Krynski, Olivier Flückiger, Jan Vitek.
In OOPSLA'21: Proc. ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications: Software for Humanity.
acm_artifact_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

What We Eval in the Shadows.
Aviral Goel, Pierre Donat-Bouillud, Filip Křikava, Christoph Kirsch, Jan Vitek.
In OOPSLA'21: Proc. ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications: Software for Humanity.
acm_artifact_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

First-Class Environments in R.
Aviral Goel, Jan Vitek.
In DLS'21: Dynamic Languages Symposium.

ASE: A Value Set Decision Procedure for Symbolic Execution.
A.S. Abyaneh, C.M. Kirsch.
In ASE'21: Proc. IEEE/ACM International Conference on Automated Software Engineering.

CodeDJ: Reproducible Queries over Large-Scale Software Repositories.
Petr Maj, Konrad Siek, Alexander Kovalenko, Jan Vitek.
In ECOOP'21: European Conference on Object-Oriented Programming.
acm_artifact_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

Formally Verified Speculation and Deoptimization in a JIT Compiler.
Aurèle Barrière, Sandrine Blazy, Olivier Flückiger, David Pichardie, Jan Vitek.
In POPL'21: Principles of Programming Languages.

2020
Contextual Dispatch for Function Specialization.
Olivier Flückiger, Guido Chari, Ming-Ho Yee, Jan Jecmen, Jakob Hain, Jan Vitek.
In OOPSLA'20: Object-Oriented Programming, Systems, Languages & Applications.
acm_artifact_available
acm_artifact_evaluated_functional

Sampling Optimized Code for Type Feedback.
Olivier Flückiger, Andreas Wälchli, Sebastián Krynski, Jan Vitek.
In DLS'20: Dynamic Languages Symposium.
acm_artifact_available

World Age in Julia: Optimizing Method Dispatch in the Presence of Eval.
Julia Belyakova, Benjamin Chung, Jack Gelinas, Jameson Nash, Ross Tate, Jan Vitek.
In OOPSLA'20: Object-Oriented Programming, Systems, Languages & Applications.
acm_artifact_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

Designing Types for R, Empirically.
Alexi Turcotte, Aviral Goel, Filip Krikava, Jan Vitek.
In OOPSLA'20: Object-Oriented Programming, Systems, Languages & Applications.
acm_artifact_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

Larger-than-memory R.
Konrad Siek, Colette Kerr.
In useR!'20: The R User Conference (Talk).

2019
On the design, implementation, and use of laziness in R.
Aviral Goel, Jan Vitek.
In OOPSLA'19: Object-Oriented Programming, Systems, Languages & Applications.
acm_artifact_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

Lambdulus: teaching lambda calculus practically.
Jan Sliacky and Petr Maj.
In SPLASH-E'19.

Scala Implicits Are Everywhere: A Large-Scale Study of the Use of Scala Implicits in the Wild.
Filip Křikava, Heather Miller, and Jan Vitek.
In SPLASH'19 OOPSLA: Object-Oriented Programming, Systems, Languages & Applications.
acm_artifact_evaluated_reusable
acm_artifact_available
acm_artifact_evaluated_functional

Syntax Templates in Racket.
Ryan Culpepper.
In Scheme'19: Scheme and Functional Programming Workshop (to appear).

From Macros to DSLs: The Evolution of Racket.
Ryan Culpepper, Matthias Felleisen, Matthew Flatt, Shriram Krishnamurthi.
In SNAPL'19: Summit on Advances in Programming Languages.

R Melts Brains: An IR for First-Class Environments and Lazy Effectful Arguments.
Olivier Flückiger, Guido Chari, Jan Ječmen, Ming-Ho Yee, Jakob Hain, Jan Vitek.
In DLS'19: Dynamic Languages Symposium (to appear).

Julia's Efficient Algorithm for Subtyping Unions and Covariant Tuples.
Benjamin Chung, Francesco Zappa Nardelli, Jan Vitek.
In ECOOP'19: European Conference on Object-Oriented Programming.

On the impact of Programming Languages Code Quality.
Emery D. Berger, Celeste Hollenbeck, Petr Maj, Olga Vitek, Jan Vitek.
In ACM Transactions on Programming Languages and Systems (to appear).

Towards a type system for R.
Alexi Turcotte, Jan Vitek.
In ICOOLPS'19: Proceedings of the 14th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems.

Can Android Run on Time? Extending and Measuring the Android Platform's Timeliness.
Yin Yan, Girish Gokul, Karthik Dantu, Steven Y. Ko, Lukasz Ziarek, Jan Vitek.
In ACM Transactions on Embedded Computing Systems, Vol 17, No. 6.

How to Evaluate the Performance of Gradual Type Systems.
Ben Greenman, Asumu Takikawa, Max S. New, Daniel Feltey, Robert Bruce Findler, Jan Vitek, Matthias Felleisen.
In Journal of Functional Programming, Vol. 29.

Feature-Specific Profiling.
Leif Andersen, Vincent St-Amour, Jan Vitek, Matthias Felleisen.
In Transactions on Programming Languages and Systems, Vol 41, Issue 1.

Verifying a Concurrent Garbage Collector with a Rely-Guarantee Methodology.
Yannick Zakowski, David Cachera, Delphine Demange, Gustavo Petri, David Pichardie, Suresh Jagannathan, Jan Vitek.
In Journal of Automated Reasoning, Vol. 63, Issue 2.

2018
Platform-Independent Dynamic Taint Analysis for JavaScript.
Rezwana Karim, Frank Tip, Alena Sochůrková, Koushik Sen.
In IEEE Transactions on Software Engineering (early access).

Julia: dynamism and performance reconciled by design.
Jeff Bezanson, Jiahao Chen, Benjamin Chung, Stefan Karpinski, Viral B. Shah, Jan Vitek, Lionel Zoubritzky.
In OOPSLA'19: Object-oriented Programming, Systems, Languages, and Applications.

Julia subtyping: a rational reconstruction.
Francesco Zappa Nardelli, Julia Belyakova, Artem Pelenitsyn, Benjamin Chung, Jeff Bezanson, and Jan Vitek.
In OOPSLA'19: Object-oriented Programming, Systems, Languages, and Applications.

Self-Contained Development Environments.
Guido Chari, Javier Pímas, Jan Vitek, and Olivier Flückiger.
In DLS'18: Dynamics Language Symposium.

Contextual equivalence for a probabilistic language with continuous random variables and recursion.
Mitchell Wand, Ryan Culpepper, Theophilos Giannalopoulos, and Andrew Cobb.
In ICFP'18: International Conference on Functional Programming.
acm_artifact_available
acm_artifact_evaluated_functional

Extracting tests from runtime behavior for R.
Filip Křikava.
In ISAGT'18: Workshop on Introspective Systems for Automatically Generating Tests. Invited talk.

Tests from Traces: Automated Unit Test Extraction for R.
Filip Křikava and Jan Vitek.
In ISSTA'18: International Symposium on Software Testing and Analysis.
Distinguished Artifact Award.
acm_artifact_available
acm_artifact_evaluated_reusable

KafKa: Gradual Typing for Objects.
Benjamin Chung, Paley Li, Francesco Zappa Nardelli, and Jan Vitek.
In ECOOP'18: European Conference on Object-Oriented Programming.
ecoop_artifact_evaluated

Preventing and Detecting Memory Protection Bugs in Packages.
Tomáš Kalibera.
In userR!'18: The Conference for Users of R.

Automated unit test generation using genthat.
Filip Křikava and Jan Vitek.
In userR!'18: The Conference for Users of R.

Handling Recursion in Generic Programming Using Closed Type Families.
Anna Bolotina and Artem Pelenitsyn.
In TFP'18: Trends in Functional Programming.

Soundness of a Correct Collector for Actors.
Juliana Franco, Sylvain Clebsch, Sophia Drossopoulou, Jan Vitek, and Tobias Wrigstad.
In ESOP'18: European Symposium on Programming.

Fully Reflective Execution Environments.
Guido Chari, Diego Garbervetsky, Stefan Marr, and Stephane Ducasse.
In Transactions on Software Engineering.

Correctness of Speculative Optimizations with Dynamic Deoptimization.
Olivier Flückiger, Gabriel Scherer, Ming-Ho Yee, Aviral Goel, Amal Ahmed, and Jan Vitek.
In POPL'18: Principles of Programming Languages.

2017
Deja-vu: A Map of Code Duplicates on GitHub.
Cristina V. Lopez, Petr Maj, Pedro Martins, Vaibhav Saini, Di Yang, Jakub Zitny, Hitesh Sajnani, and Jan Vitek.
In OOPSLA'17: Object-Oriented Programming, Systems, Languages & Applications.
Distinguished Artifact Award.

Appeared in: The Morning Paper, Slashdot, TheRegister.co.uk, Developpez.com (French), opennet.ru (Russian), toutiao (Chinese), and sohu (Chinese).


acm_artifact_available
acm_artifact_evaluated_reusable

Orca: GC and Type System Co-Design for Actor Languages.
Sylvain Clebsch, Juliana Franco, Sophia Drossopoulou, Albert Mingkun Yang, Tobias Wrigstad, and Jan Vitek.
In OOPSLA'17: Object-Oriented Programming, Systems, Languages & Applications.

Generic Approach to Certified Static Checking of Module-like Constructs.
Julia Belyakova.
In FTFJP'17: Workshop on Formal Techniques for Java-like Programs.

Parallelizing Julia with a Non-invasive DSL.
Todd Anderson, Hai Liu, Lindsey Kuper, Ehsan Totoni, Jan Vitek, and Tatiana Shpeisman.
In ECOOP'17: European Conference on Object-Oriented Programming.
ecoop_artifact_evaluated

Verifying a Concurrent Garbage Collector using a Rely-Guarantee Methodology.
Yannick Zakowski, David Cachera, Delphine Demange, Gustavo Petri, David Pichardie, Suresh Jagannathan, and Jan Vitek.
In ITP'17: International Conference on Interactive Theorem Proving.

Contracts-Based Control Integration into Software Systems.
Filip Krikava, Philippe Collet, Romain Rouvoy, and Lionel Seinturier.
In R. de Lemos et al. book Self-Adaptive Systems III, LNCS 9640.

Hadoop-Benchmark: Rapid Prototyping and Evaluation of Self-Adaptive Behaviors in Hadoop Clusters.
Bo Zhang, Filip Krikava, Romain Rouvoy, and Lionel Seinturier.
In SEAMS’17: 12th International Symposium on Software Engineering for Adaptive and Self-Managing Systems.

Hadoop-Benchmark: Rapid Prototyping and Evaluation of Self-Adaptive Behaviors in Hadoop Clusters (Artifact).
Bo Zhang, Filip Krikava, Romain Rouvoy, and Lionel Seinturier.
In Dagstuhl Artifacts Series 2509-8195 vol. 3-1.

Making Android Run on Time.
Yin Yan, Karthik Dantu, Steven Y. Ko, Jan Vitek, and Lukasz Ziarek.
In RTAS'17: Real-time and Embedded Technology and Application Symposium.

Helenos: A Realistic Benchmark for Distributed Transactional Memory.
Jan Baranowski, Paweł Kobyliński, Konrad Siek, and Paweł T. Wojciechowski.
In Software: Practice and Experience, volume 48, issue 3.