SoftwareApplication
name: Codebase Underlying the BSc Thesis: Type-Checking Modules and Imports using Scope Graphs
description: Codebase Underlying the BSc Thesis: Type-Checking Modules and Imports using Scope Graphs
description: The objective of this research was to determine whether a stratified type-checking approach using scope graphs could type-check the proof-of-concept language LM. Scope graphs provide a way to type-check real-world programming languages and their constructs. Previous implementations that type-check LM, a language with relative, unordered, and glob imports, do not halt. This dataset contains Haskell code for constructing and type-checking a scope graph of an LM program. It is based on the Phased Haskell library. With this implementation, the all test cases halt and the majority exhibit the correct behaviour with only one false-negative. This implementation uses a five-step approach: Constructing a module hierarchy.Constructing a scope graph consisting of scopes and module sinks.Iteratively resolving imports and placing import edges in the scope graph.Adding all declarations of all modules to the scope graph.Type-checking the bodies of all declarations with respect to the scope graph. Many test cases bundled with this data set are based on those for LMR (which is very similar to LM) and can be found here. On top of that. more test cases were derived and included. All test cases are denoted as annotated terms. This data set is linked to a Bachelor's thesis completed at the EEMCS faculty at the TU Delft. A link will be added after publication.
code repository: https://data.4tu.nl/v3/datasets/2ef92305-5f55-417a-9da4-b0e50f0d265a.git
author: Person
  given name: Paul
  family name: Hübner
  name: Paul Hübner
author: Person
  given name: Casper
  family name: Bach Poulsen
  name: Casper Bach Poulsen
author: Person
  given name: Aron
  family name: Zwaan
  name: Aron Zwaan
keywords: stratified type-checking
keywords: relative imports
keywords: scope graphs
keywords: glob imports
keywords: unordered imports
keywords: lm
keywords: haskell
keywords: type-checking
programming language: Haskell
programming language: Other
programming language: Python
programming language: YAML
license:
  creative work: creativeWork
    name: MIT