Presentations and Conference Talks
2022
JEDI: These aren’t the JSON documents you’re looking for....
Thomas Hütter, Nikolaus Augsten, Christoph M. Kirsch, Michael J. Carey, Chen Li.
In SIGMOD'22: ACM SIGMOD International Conference on Management of Data.

Composable Sequence Macros for Fast Iteration.
Anna Bolotina, Ryan Culpepper.
In GPCE'22: ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences.

signatr: A Data-Driven Fuzzing Tool for R.
Alexi Turcotte, Pierre Donat-Bouillud, Filip Křikava, Jan Vitek.
In SLE'22: ACM SIGPLAN International Conference on Software Language Engineering.
acm_artifact_available
acm_artifact_evaluated_reusable

Linear Self-attention Approximation via Trainable Feedforward Kernel.
Uladzislau Yorsh, Alexander Kovalenko.
In ICANN'22: 31st International Conference on Artificial Neural Networks.

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
Dynamic Neural Diversification: Path to Computationally Sustainable Neural Networks.
Alexander Kovalenko, Pavel Kordík, Magda Friedjungová.
In ICANN'21: Artificial Neural Networks and Machine Learning.

Last-use Opacity: A Strong Safety Property for Transactional Memory with Prerelease Support.
Konrad Siek, Paweł T. Wojciechowski.
In DIST: Distributed Computing.

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.

Userfault objects: transparent programmable memory.
Konrad Siek and Colette Kerr.
In ICOOLPS'21: Proc. Workshop on Implementation, Compilation, Optimization of Object-oriented Languages, Programs and Systems.

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

The Current State and Prospects of Encoding Support in R.
Tomaš Kalibera.
In useR!'20: The R User Conference (Talk).

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

The Invisible Work on R.
Tomaš Kalibera.
In e-Rum'20: European R Users Meeting 2020 (Keynote).

Fast Sequence Combinators.
Anna Bolotina.
In RACKETFEST'20 (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.

RDT: A Dynamic Tracing Framework for R.
Aviral Goel, Filip Křikava, Jan Vitek.
In RIOT'19: R Implementation, Optimization, and Tooling (Talk).

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

Julia's Efficient Algorithm for Subtyping Unions and Covariant Tuples (Artifact).
Benjamin Chung, Francesco Zappa Nardelli, Jan Vitek.
In Dagstuhl Artifact Series, volume 5, number 2.

Pattern-Based S-Expression Rewriting in Emacs.
Ryan Culpepper.
In ELS'19: European Lisp Symposium.

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_available
acm_artifact_evaluated_functional
acm_artifact_evaluated_reusable

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

Online Abstraction with MDP Homomorphisms for Deep Learning.
Ondřej Bíža, Robert Platt.
In AAMAS'19: International Conference on Autonomous Agents and MultiAgent Systems.

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: International Symposium on Dynamic Languages (to appear).

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, article no. 21.

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

Dynamic deoptimization for the R language.
Jan Ječmen.
In Technical Report TR-FIT-19-05.

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

Everything you ever wanted to know about Scala implicits, but weren't sure how to ask.
Filip Křikava.
In Scala.IO'18: .

Monotonic gradual typing in a common calculus.
Benjamin Chung and Jan Vitek.
In ISSTA'18: International Symposium on Software Testing and Analysis.

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

KafKa: Gradual Typing for Objects (Artifact).
Benjamin Chung, Paley Li, Francesco Zappa Nardelli, and Jan Vitek.
In Dagstuhl Artifact Series.

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.

Correctness of a concurrent object collector for actor languages.
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 Stéphane Ducasse.
In Transactions on Software Engineering, volume 45, issue 9.

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

Parallelizing Julia with a Non-invasive DSL (Artifact).
Todd Anderson, Hai Liu, Lindsey Kuper, Ehsan Totoni, Jan Vitek, and Tatiana Shpeisman.
In Dagstuhl Artifact Series, volume 3, issue 2.

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.

Control Strategies for Self-Adaptive Software Systems.
Antonio Filieri, Martina Maggio, Konstantinos Angelopoulos, Nicolás D’ippolito, Ilias Gerostathopoulos, Andreas Berndt Hempel, Henry Hoffmann, Pooyan Jamshidi, Evangelia Kalyvianaki, Cristian Klein, Filip Krikava, Sasa Misailovic, Alessandro V. Papadopoulos, Suprio Ray, Amir M. Sharifloo, Stepan Shevtsov, Mateusz Ujma, Thomas Vogel.
In ACM Transactions on Autonomous and Adaptive Systems, volume 11, issue 4.