Print Email Facebook Twitter Incrementalizing Statix Title Incrementalizing Statix: A Modular and Incremental Approach for Type Checking and Name Binding using Scope Graphs Author Aerts, Taico (TU Delft Electrical Engineering, Mathematics and Computer Science; TU Delft Programming Languages) Contributor van Antwerpen, Hendrik (mentor) Visser, Eelco (mentor) Yorke-Smith, Neil (graduation committee) Krebbers, Robbert (graduation committee) Degree granting institution Delft University of Technology Programme Computer Science Date 2019-09-26 Abstract Statix is a language which generates a type checker from a declarative specification. However, Statix is not fast enough for quick feedback in IDEs because it always has to reanalyze all files. In this thesis, we improve the analysis time of Statix by applying the ideas of separate compilation to create a model for incremental analysis. Statix uses a scope graph for representing the scoping and declarations of a project. We split the scope graph over multiple smaller modules which can be analyzed in isolation. Our model automatically detects dependencies between modules and supports creating scope graph diffs to determine modules affected by changes with high precision. The modules from our model can be solved in parallel, already yielding performance improvements of up to 40% compared to the original implementation. Finally, we implement an optimistic strategy with our model and show that it is effective whenever changes are small, reducing analysis time by up to 5 times for large projects. Subject StatixIncrementalType checkingModularizationName bindingSpoofax To reference this document use: http://resolver.tudelft.nl/uuid:3e0ea516-3058-4b8c-bfb6-5e846c4bd982 Part of collection Student theses Document type master thesis Rights © 2019 Taico Aerts Files PDF Master_Thesis_Taico_Aerts_Final.pdf 2.13 MB Close viewer /islandora/object/uuid:3e0ea516-3058-4b8c-bfb6-5e846c4bd982/datastream/OBJ/view