Print Email Facebook Twitter Building Type Checkers Using Scope Graphs Title Building Type Checkers Using Scope Graphs: Scope Graph-Based Type Checking for a Scala Subset Author Mihălăchiuţă, Radu (TU Delft Electrical Engineering, Mathematics and Computer Science) Contributor Poulsen, C.B. (mentor) Zwaan, A.S. (mentor) Durieux, T. (graduation committee) Degree granting institution Delft University of Technology Programme Computer Science and Engineering Project CSE3000 Research Project Date 2023-06-28 Abstract This paper investigates the viability of using scope graphs to implement type checkers for programming languages, specifically for a Scala subset. The primary objective is to determine if scope graphs can offer a declarative and extensible approach to type checking. To achieve this, we used a phased Haskell library to implement such a type checker. The declarativity and feature extensibility of the approach were evaluated by means of comparation with Rouvoet et al.'s approach in mini-Statix. The results demonstrate that using scope graphs as a basis for type checking yields a modular and extensible solution compared to traditional methods. However, it is noted that this approach may sacrifice a certain degree of declarativity. These findings suggest that scope graphs are a promising tool for type checking, particularly in the context of name binding. Further research is recommended to explore the possibility of implementing similar type checkers for other programming languages. Additionally, the paper suggests incorporating additional features into the targeted Scala subset, thereby enhancing its extensibility. Subject Type CheckingScala Type CheckerScope GraphsPhased Type Checking To reference this document use: http://resolver.tudelft.nl/uuid:a4050c81-4a1c-4cf0-b26e-7c60aa18503a Part of collection Student theses Document type bachelor thesis Rights © 2023 Radu Mihălăchiuţă Files PDF Scope_Graph_Based_Type_Ch ... _Scala.pdf 189.24 KB Close viewer /islandora/object/uuid:a4050c81-4a1c-4cf0-b26e-7c60aa18503a/datastream/OBJ/view