Posts by Collection

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.

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

talks

teaching