Sitemap

A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.

Pages

Posts

a blog post

less than 1 minute read

Published:

hey you found this page thats awesome

portfolio

publications

The VM Already Knew That

Published in OOPSLA, 2017

Virtual machines are already performing many of the type checks demanded by sound gradual type systems, and eliminating redundant checks significantly improves performance.

Recommended citation: Gregor Richards, Ellen Arteca, and Alexi Turcotte. 2017. The VM Already Knew That: Leveraging Compile-Time Knowledge to Optimize Gradual Typing. Proc. ACM Program. Lang. 1, OOPSLA, Article 55 (October 2017), 27 pages. http://reallytg.github.io/files/papers/oopsla17-oopsla98.pdf

Partitioning Orthogonal Histograms Into Rectangular Boxes

Published in LATIN, 2018

From the algorithms problem sessions at Waterloo; a better approximation for cutting up an orthogonal histogram into rectangular boxes.

Recommended citation: Therese Biedl, Martin Derka, Veronika Irvine, Anna Lubiw, Debajyoti Mondal, and Alexi Turcotte. 2018. Partitioning Orthogonal Histograms Into Rectangular Boxes. Latin American Theoretical Informatics Symposium, LATIN, 14 pages. http://reallytg.github.io/files/papers/latin18-histograms.pdf

Token Swapping on Trees

Published in DMTCS, 2019

From the algorithms problem sessions at Waterloo; this paper presents some results about token swapping on a tree, i.e., sorting with a transposition tree.

Recommended citation: Ahmad Biniaz, Kshitij Jain, Anna Lubiw, Zuzana Masárová, Tillmann Miltzow, Debajyoti Mondal, Anurag Murty Naredla, Josef Tkadlec, Alexi Turcotte. 2019. Token Swapping on Trees. DMTCS, 37 pages. http://reallytg.github.io/files/papers/arxiv19-token-swap.pdf

Reasoning About FFIs Without Modelling the Foreign Language

Published in ECOOP, 2019

This paper explores how to build a formal semantics for interactions with a foreign-function interface without explicitly modelling the foreign language.

Recommended citation: Alexi Turcotte, Ellen Arteca, and Gregor Richards. 2019. Reasoning About Foreign Function Interfaces Without Modelling the Foreign Language. European Conference on Object-Oriented Programming, ECOOP, Article 16 (July 2019), 32 pages. http://reallytg.github.io/files/papers/ecoop19-preprint.pdf

Towards a Type System for R

Published in ICOOOLPS (ECOOP), 2019

This paper describes our initial exploration into the challenges of building a static type system for R.

Recommended citation: Alexi Turcotte and Jan Vitek. 2019. Reasoning About Foreign Function Interfaces Without Modelling the Foreign Language. Proceedings of the 14th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, ICOOOLPS, Article 4 (July 2019), 5 pages. http://reallytg.github.io/files/papers/towards-ts-for-r.pdf

Just Typeical: Visualizing Common Function Type Signatures in R

Published in IEEE VIS, 2020

This paper describes a strategy for visualizing large amounts of type signatures for functions; these signatures were collected as part of a large experiment for the Types for R paper.

Recommended citation: Cameron Moy, Julia Belyakova, Alexi Turcotte, Sara Di Bartolomeo and Cody Dunne, Just TYPEical: Visualizing Common Function Type Signatures in R, IEEE Visualization Conference (VIS), 2020, pp. 121-125 http://reallytg.github.io/files/papers/just-typeical.pdf

Designing Types for R, Empirically

Published in OOPSLA, 2020

We designed a type language to annotate R functions based on a large-scale corpus analysis of real R code. The design is simple, and useful enough to obviate many checks programmers explicitly write.

Recommended citation: Alexi Turcotte, Aviral Goel, Filip Křikava, Jan Vitek, Designing Types for R, Empirically, Proceedings of the ACM on Programming Languages (OOPSLA), 2020, Vol. 4, Article 181, pp. 1-25 http://reallytg.github.io/files/papers/types-for-r-oopsla20-final.pdf

Automatic migration from synchronous to asynchronous JavaScript APIs

Published in OOPSLA, 2021

We present a technique to automatically refactor JavaScript programs using asynchronous APIs to use their asynchronous equivalents using promise-based asynchrony. While the technique is unsound, very few refactoring suggestions resulted in behavioral differences.

Recommended citation: Satyajit Gokhale, Alexi Turcotte, and Frank Tip. Automatic Migration from Synchronous to Asynchronous JavaScript APIs. Proc. ACM Program. Lang. 5, OOPSLA, Article 160 (October 2021), 27 pages. http://reallytg.github.io/files/papers/automatic-migration.pdf

DrAsync: Identifying and Visualizing Anti-Patterns in Asynchronous JavaScript

Published in ICSE, 2022

This paper details eight anti-patterns that frequently occur in asynchronous JavaScript programs. A dynamic profiling and visualization tool augment the static detection of anti-patterns by visualizing promise lifetimes, helping programmers to see the impact of these anti-patterns. The artifact acompanying this paper received a Best Artifact Award!

Recommended citation: Alexi Turcotte, Michael D. Shah, Mark W. Aldrich, and Frank Tip. DrAsync: Identifying and Visualizing Anti-Patterns in Asynchronous JavaScript. In Proceedings of the 44th International Conference on Software Engineering (ICSE). Association for Computing Machinery, New York, NY, USA, 774–785. http://reallytg.github.io/files/papers/drasync.pdf

stubbifier: Debloating Dynamic Server-Side JavaScript Applications

Published in EMSE, 2022

This paper presents an approach for debloating server-side JavaScript applications, even in the presence of dynamism. Rather than removing unused code, said code is replaced with a stub that can dynamically fetch the code if it is ever needed. In practice, not much code is loaded dynamically.

Recommended citation: Alexi Turcotte, Ellen Arteca, Ashish Mishra, Saba Alimadadi, and Frank Tip. stubbifier: Debloating Dynamic Server-Side JavaScript Applications. Empirical Software Engineering, Vol. 27, Article 161 (2022) http://reallytg.github.io/files/papers/stubbifier.pdf

Augur: Dynamic Taint Analysis for Asynchronous JavaScript

Published in ASE (Tool), 2022

This paper presents a tool for dynamic taint analysis of JavaScript with low overhead. It is built with the GraalVM NodeProf dynamic analysis framework.

Recommended citation: Mark W. Aldrich, Alexi Turcotte, Matthew Blanco, and Frank Tip. Augur: Dynamic Taint Analysis for Asynchronous JavaScript. In 37th IEEE/ACM International Conference on Automated Software Engineering (ASE Tool Track). Rochester, MI, USA. ACM, New York, NY, USA. 4 pages. http://reallytg.github.io/files/papers/augur.pdf

reformulator: Automated Refactoring of the N+1 Problem in Database-Backed Applications

Published in ASE, 2022

Object-relational mappings allow programmers to write object-oriented-looking database code, but this code is prone to the N+1 problem. This paper describes an approach to automtically detect and repair these issues.

Recommended citation: Alexi Turcotte, Mark W. Aldrich, and Frank Tip. reformulator: Automated Refactoring of the N+1 Problem in Database-Backed Applications. In 37th IEEE/ACM International Conference on Automated Software Engineering (ASE). Rochester, MI, USA. ACM, New York, NY, USA. 12 pages. http://reallytg.github.io/files/papers/reformulator.pdf

npm-filter: Automating the Mining of Dynamic Information from npm Packages

Published in MSR (Tool), 2022

This paper presents a tool for automatically mining dynamic information from npm packages, including transitive dependencies and the presence of a test suite.

Recommended citation: Ellen Arteca and Alexi Turcotte. 2022. npm-filter: Automating the Mining of Dynamic Information from npm Packages. In Proceedings of the 19th International Conference on Mining Software Repositories (MSR). Association for Computing Machinery, New York, NY, USA, 304–308. http://reallytg.github.io/files/papers/npm-filter.pdf

signatr: A Data-Driven Fuzzing Tool for R

Published in SLE (Tool), 2022

This paper presents an approach for fuzzing in R; an initial large-scale corpus analysis collects and catalogues real R values, and that catalogue is queried for inputs while fuzzing.

Recommended citation: Alexi Turcotte, Pierre Donat-Bouillud, Filip Křikava, and Jan Vitek. 2022. signatr: A Data-Driven Fuzzing Tool for R. In Proceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering (SLE), December 06–07, 2022, Auckland, New Zealand. ACM, New York, NY, USA, 6 pages. http://reallytg.github.io/files/papers/signatr.pdf

Increasing the Responsiveness of Web Applications by Introducing Lazy Loading

Published in ASE, 2023

This paper presents an approach for automatically detecting third-party libraries that are not required on application start, and for automatically transforming the application to load such libraries lazily.

Recommended citation: Alexi Turcotte, Satyajit Gokhale, and Frank Tip. 2023. Increasing the Responsiveness of Web Applications by Introducing Lazy Loading. In 38th IEEE/ACM International Conference on Automated Software Engineering (ASE). Kirchberg, Luxembourg. ACM, New York, NY, USA. 12 pages. http://reallytg.github.io/files/papers/lazifier.pdf

The Effecs of Computational Resources on Flaky Tests

Published in TSE, 2024

Have you ever experienced odd program behaviour when running your program in resource-constrained environments? This paper explores this, identifying resource-affected flaky tests (RAFT).

Recommended citation: Denini Silva, Martin Gruber, Satyajit Gokhale, Ellen Arteca, Alexi Turcotte, Marcelo d’Amorim, Wing Lam, Stefan Winter, and Jonathan Bell. 2024. The Effects of Computational Resources on Flaky Tests. IEEE Trans. Softw. Eng. 50, 12 (Dec. 2024), 3104–3121. https://doi.org/10.1109/TSE.2024.3462251 http://reallytg.github.io/files/papers/raft.pdf

Expressing and Checking Statistical Assumptions

Published in FSE, 2025

Statistics is tricky business, and programs meant to perform statistics do not give analysts feedback when they make mistakes. In this paper, we explore how data that does not appear to be compliant w.r.t. assumptions made by statistical methods affects the outcome of statistical tests, and propose an approach to automatically deliver feedback to analysts when such assumptions appear to be violated. This paper received an ACM SIGSOFT Distinguished Paper Award!

Recommended citation: Alexi Turcotte and Zheyuan Wu. 2025. Expressing and Checking Statistical Assumptions. Proc. ACM Softw. Eng. 2, FSE, Article FSE121 (July 2025), 24 pages. https://doi.org/10.1145/3729391 http://reallytg.github.io/files/papers/prob_check.pdf

The Fault in our Stats

Published in ASE, 2025

As mentioned below, statistics is tricky, but there are many steps that analysts can take to ensure that their data complies with assumptions made by the methods they use. This paper presents an approach to statically detect such cases, and importantly, statically detect when analysts fail to check assumptions. This approach also catches data dredging!

Recommended citation: Alexi Turcotte and Neev Nirav Mehta. 2025. The Fault in our Stats. In 40th IEEE/ACM International Conference on Automated Software Engineering (ASE). Rochester, MI, USA. ACM, New York, NY, USA., 13 pages. DOI to come. http://reallytg.github.io/files/papers/ase25_statlint_final_final.pdf

D-BUNDLR: Destructing JavaScript Bundles for Effective Static Analysis

Published in ICSE, 2026

JavaScript bundlers take complex, multi-file JavaScript projects (including direct and transitive dependencies) and shove them into one-or-a-few files so that they are faster to load. We argue that this is a compilation process, and inspired by de-compilation, we propose a de-bundling technique to try to improve the results of static analysis on these bundles.

Recommended citation: Wenyuan Xu, Alexi Turcotte, and Cristian-Alexandru Staicu. D-BUNDLR: Destructing JavaScript Bundles for Effective Static Analysis. In Proceedings of the 48th International Conference on Software Engineering (ICSE). Association for Computing Machinery, New York, NY, USA. More information to come. http://reallytg.github.io/files/papers/debundling_icse.pdf

Remediating Superfluous Re-Rendering in React Applications

Published in ICSE, 2026

React is a ubiquitous front-end JavaScript library that pitches a smart mechanism to determine how much of a web page needs to be re-rendered when a change occurs. There are a few pitfalls that developers can fall into when developing such applications, and in this work we propose a set of anti-patterns and fixes to remediate these common isues.

Recommended citation: Farideh Khalili and Satyajit Gokhale, Alexi Turcotte, Dale Xu, and Frank Tip. Remediating Superfluous Re-Rendering in React Applications In Proceedings of the 48th International Conference on Software Engineering (ICSE). Association for Computing Machinery, New York, NY, USA. More information to come. http://reallytg.github.io/files/papers/icse_26_rerendering.pdf

talks

teaching