An Agda scope checker implemented in Agda
dc.contributor.author | Gazzetta, Francesco | |
dc.contributor.department | Chalmers tekniska högskola / Institutionen för data och informationsteknik | sv |
dc.contributor.department | Chalmers University of Technology / Department of Computer Science and Engineering | en |
dc.contributor.examiner | Jansson, Patrik | |
dc.contributor.supervisor | Abel, Andreas | |
dc.date.accessioned | 2024-01-10T13:30:22Z | |
dc.date.available | 2024-01-10T13:30:22Z | |
dc.date.issued | 2023 | |
dc.date.submitted | 2023 | |
dc.description.abstract | Agda [1] is a Haskell-style, purely functional, dependently typed programming language and theorem prover. Scope checking is the process of analyzing the Abstract Syntax Tree (AST) of a program and resolving all references to symbols by connecting them to the corresponding declarations of said symbols. The Agda scope checker – as well as the rest of the compiler – is written in Haskell, and does not include any proof about the reachability of declarations. In this thesis, we present a scope checker for the Agda language, written in Agda itself, and prove the correctness of its name resolution algorithm with reference to the reachability properties of the Agda language. The result of this scope checking pass is a correct by construction AST that contains a proof that the syntax is well-scoped represented as paths from references of names (eg. x) to declarations (eg. x = ...). | |
dc.identifier.coursecode | DATX05 | |
dc.identifier.uri | http://hdl.handle.net/20.500.12380/307506 | |
dc.language.iso | eng | |
dc.setspec.uppsok | Technology | |
dc.subject | Computer science | |
dc.subject | Agda | |
dc.subject | compilers | |
dc.subject | scoping | |
dc.subject | well-scoped syntax | |
dc.subject | dependent types | |
dc.subject | name resolution | |
dc.subject | formal verification | |
dc.title | An Agda scope checker implemented in Agda | |
dc.type.degree | Examensarbete för masterexamen | sv |
dc.type.degree | Master's Thesis | en |
dc.type.uppsok | H | |
local.programme | Computer science – algorithms, languages and logic (MPALG), MSc |