Searched for: subject%3A%22Scope%255C+graphs%22
(1 - 16 of 16)
document
Tilro, Jesse (author)
Reusable tools for engineering software languages can bridge the gap between formal specification and implementation, lowering the bar for engineers to design and implement programming languages. Among such tools belong NaBL2 and its successor Statix, which are meta-languages for declaratively specifying the static semantics of programming...
master thesis 2023
document
Hübner, Paul (author)
Scope graphs provide a way to type-check real-world programming languages and their constructs. A previous implementation that type-checks the proof-of-concept language LM, a language with relative, unordered, and glob imports, does not halt. This thesis discusses a five-step approach for constructing and type-checking a scope graph of an LM...
bachelor thesis 2023
document
Mocanu, Andreea (author)
In this paper, we explore scope graphs as a formal model for constructing type checkers for programming languages that support type classes. Type classes provide a powerful mechanism for ad hoc-polymorphism and code reuse. Nevertheless, the incorporation of type classes into type checkers poses challenges, as it necessitates the resolution of...
bachelor thesis 2023
document
Knapen, Jan (author)
Substructural typing imposes additional constraints on variable usage during type checking and requires specialized approaches to ensure type soundness. In this study, we investigate the implementation of a type checker using scope graphs for languages with substructural type systems. Scope graphs, a data structure representing scoping, provide...
bachelor thesis 2023
document
Thabet, Omar (author)
Traditional type-checking programs are typically designed for specific programming languages, re- sulting in complex and tightly coupled imperative implementations. One of the challenges faced by type checkers is ensuring consistent name-binding resolution in the presence of new names and sym- bols added to the environment. To address this issue...
bachelor thesis 2023
document
Mihălăchiuţă, Radu (author)
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...
bachelor thesis 2023
document
Brouwer, Jonathan (author)
Static type systems can greatly enhance the quality of programs, but implementing a type checker for them is challenging and error-prone. The Statix meta-language (part of the Spoofax language workbench) aims to make this task easier by automatically deriving a type checker from a declarative specification of the type system. However, so far...
master thesis 2023
document
Miljak, L. (author), Poulsen, C.B. (author), van Spaendonck, Flip (author)
The goal of automated refactoring is to reduce maintenance effort. To realize this, programmers need to be able to trust or manually check that refactorings actually preserve behavior. To allow programmers to focus on such checks, automated refactorings should preserve program well-typedness. However, historically automated refactorings in...
conference paper 2023
document
Brouwer, Jonathan (author), Cockx, J.G.H. (author), Zwaan, A.S. (author)
Static type systems can greatly enhance the quality of programs, but implementing a type checker that is both expressive and user-friendly is challenging and error-prone. The Statix meta-language (part of the Spoofax language workbench) aims to make this task easier by automatically deriving a type checker from a declarative specification of...
conference paper 2023
document
Poulsen, C.B. (author), Zwaan, A.S. (author), Hübner, Paul (author)
An important aspect of type checking is name resolution — i.e., determining the types of names by resolving them to a matching declaration. For most languages, we can give typing rules that define name resolution in a way that abstracts from what order different units of code should be checked in. However, implementations of type checkers in...
conference paper 2023
document
Zwaan, A.S. (author), van Antwerpen, H. (author)
Static name binding (i.e., associating references with appropriate declarations) is an essential aspect of programming languages. However, it is usually treated in an unprincipled manner, often leaving a gap between formalization and implementation. The scope graph formalism mitigates these deficiencies by providing a well-defined, first...
conference paper 2023
document
Zwaan, A.S. (author), van Antwerpen, H. (author), Visser, Eelco (author)
Fast analysis response times in IDEs are essential for a good editor experience. Incremental type-checking can provide that in a scalable fashion. However, existing techniques are not reusable between languages. Moreover, mutual and dynamic dependencies preclude traditional approaches to incrementality. This makes finding automatic approaches to...
journal article 2022
document
Zwaan, A.S. (author)
To warrant programmer productivity, type checker results should be correct and available quickly. Correctness can be provided when a type checker implementation corresponds to a declarative type system specification. Statix is a type system specification language which achieves this by automatically deriving type checker implementations from...
conference paper 2022
document
Zwaan, Aron (author)
Static Analysis is of indispensable value for the robustness of software systems and the efficiency of developers. Moreover, many modern-day software systems are composed of interacting subsystems written in different programming languages. However, in most cases no static validation of these interactions is applied. In this thesis, we identify...
master thesis 2021
document
Poulsen, C.B. (author), Rouvoet, A.J. (author), Tolmach, Andrew (author), Krebbers, R.J. (author), Visser, Eelco (author)
A definitional interpreter defines the semantics of an object language in terms of the (well-known) semantics of a host language, enabling understanding and validation of the semantics through execution. Combining a definitional interpreter with a separate type system requires a separate type safety proof. An alternative approach, at least for...
journal article 2018
document
Poulsen, C.B. (author), Neron, P.J.M. (author), Tolmach, Andrew (author), Visser, Eelco (author)
Semantic specifications do not make a systematic connection between the names and scopes in the static structure of a program and memory layout, and access during its execution. In this paper we introduce a systematic approach to the alignment of names in static semantics and memory in dynamic semantics, building on the scope graph framework...
conference paper 2016
Searched for: subject%3A%22Scope%255C+graphs%22
(1 - 16 of 16)