Page Not Found
Page not found. Your pixels are in another canvas.
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.
Page not found. Your pixels are in another canvas.
about me
This is a page not in th emain menu
Published:
hey you found this page thats awesome
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
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
Published in CCCG, 2018
From the algorithms problem sessions at Waterloo; a study of unit bar-visibility representations.
Recommended citation: Therese Biedl, Ahmad Biniaz, Veronika Irvine, Philipp Kindermann, Anurag Murty Naredla, and Alexi Turcotte. 2018. Integral Unit Bar-Visibility Graphs. Canadian Conference on Computational Geometry, CCCG, 7 pages. http://reallytg.github.io/files/papers/cccg18-unit-bar.pdf
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Published:
i gave a talk on how to reason about ffis without (fully) modelling the foreign language