Incremental Type Checking in IncA

Master Thesis (2018)
Author(s)

S. Bosma (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Sebastian Erdweg – Mentor

Tamás Szabó – Mentor

Eelco Visser – Graduation committee member

Asterios Katsifodimos – Graduation committee member

Robbert Krebbers – Graduation committee member

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2018 Sander Bosma
More Info
expand_more
Publication Year
2018
Language
English
Copyright
© 2018 Sander Bosma
Graduation Date
02-11-2018
Awarding Institution
Delft University of Technology
Programme
['Computer Science ']
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

When using an integrated development environment, it is desirable to get real-time feedback on the correctness of the program. That is, we want to see the results of the type checker in real-time. However, type checking can take a long time, especially when the subject program is large. To be able to provide real-time results, we need to incrementalize the type checker. This way, when a program changes, we only need to recalculate results for the changed portion of the program, and everything that depends on it. In this thesis, we discuss how we used IncA to implement a type checker for Rust. IncA is a domain specific language for the definition of incremental program analyses: analyses written in IncA are automatically incrementalized. We show in our evaluation that our type checker updates results significantly faster than its non-incremental counterpart. While we were able to successfully implement many of Rust's features, there are some parts we were unable to implement, and we show why that is the case.

Files

License info not available