Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation 2016
DOI: 10.1145/2847538.2847543
|View full text |Cite
|
Sign up to set email alerts
|

A constraint language for static semantic analysis based on scope graphs

Abstract: In previous work, we introduced scope graphs as a formalism for describing program binding structure and performing name resolution in an AST-independent way. In this paper, we show how to use scope graphs to build static semantic analyzers. We use constraints extracted from the AST to specify facts about binding, typing, and initialization. We treat name and type resolution as separate building blocks, but our approach can handle language constructs-such as record field access-for which binding and typing are… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
32
0

Year Published

2016
2016
2024
2024

Publication Types

Select...
4
3
1

Relationship

6
2

Authors

Journals

citations
Cited by 39 publications
(32 citation statements)
references
References 19 publications
0
32
0
Order By: Relevance
“…This avoids duplication of scope graphs, and makes the approach promising for languages that do normalization during type checking for types with rich binding structure. It also shows that scope graphs and the revised resolution calculus presented in Section 2.1 provide a theory for name binding and name resolution in type systems that scales to languages beyond the relatively simple type systems that scope graphs were demonstrated to work previously [Néron et al 2015;Poulsen et al 2016Poulsen et al , 2018van Antwerpen et al 2016].…”
Section: Discussionmentioning
confidence: 87%
See 2 more Smart Citations
“…This avoids duplication of scope graphs, and makes the approach promising for languages that do normalization during type checking for types with rich binding structure. It also shows that scope graphs and the revised resolution calculus presented in Section 2.1 provide a theory for name binding and name resolution in type systems that scales to languages beyond the relatively simple type systems that scope graphs were demonstrated to work previously [Néron et al 2015;Poulsen et al 2016Poulsen et al , 2018van Antwerpen et al 2016].…”
Section: Discussionmentioning
confidence: 87%
“…Label well-formedness tests that the path has a 'good shape' as defined by a regular label well-formedness WFL ⊆ L * defined as a regular expression data order expression. This is used to model policies such as transitive vs. non-transitive imports or the unreachability of lexical parents of imported modules [Van Antwerpen et al 2016]. Data term well-formedness tests whether we have found the datum we were looking for.…”
Section: Scope Graphs and The Resolution Calculusmentioning
confidence: 99%
See 1 more Smart Citation
“…As the basis for our investigations we use Statix, a constraint language developed for the specification of type systems [21]. Statix is built around scope graphs, a language-independent model for name binding and name resolution [20]. We argue that Statix is a suitable basis for the definition of editor services by expressing them in terms of Statix constraints and Statix type system specifications.…”
Section: Towards Language-parametric Semantic Editor Services Based Omentioning
confidence: 99%
“…In the Spoofax ecosystem, a programming language is specified in terms of multiple high-level declarative meta-language definitions, where each meta-language covers a language-independent aspect (e.g., separate syntax definition [45], name binding rules [3,29,35], or the dynamic semantics definition of a programming language [43]). Subsequently, Spoofax generates a complete implementation of a programming language, given all the meta-language definitions.…”
Section: Case Study: Spoofax Language Workbenchmentioning
confidence: 99%