Searched for: +
(1 - 9 of 9)
document
van Antwerpen, H. (author), Neron, P.J.M. (author), Tolmach, Andrew (author), Visser, Eelco (author), Wachsmuth, G.H. (author)
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...
conference paper 2016
document
van Antwerpen, H. (author), Poulsen, C.B. (author), Rouvoet, A.J. (author), Visser, Eelco (author)
Scope graphs are a promising generic framework to model the binding structures of programming languages, bridging formalization and implementation, supporting the definition of type checkers and the automation of type safety proofs. However, previous work on scope graphs has been limited to simple, nominal type systems. In this paper, we show...
journal article 2018
document
Pelsmaeker, D.A.A. (author), van Antwerpen, H. (author), Visser, Eelco (author)
Editor services assist programmers to more effectively write and comprehend code. Implementing editor services correctly is not trivial. This paper focuses on the specification of semantic editor services, those that use the semantic model of a program. The specification of refactorings is a common subject of study, but many other semantic...
conference paper 2019
document
Mensing, Adrian D. (author), van Antwerpen, H. (author), Poulsen, C.B. (author), Visser, Eelco (author)
Symbolic execution is a technique for automatic software validation and verification. New symbolic executors regularly appear for both existing and new languages and such symbolic executors are generally manually (re)implemented each time we want to support a new language. We propose to automatically generate symbolic executors from language...
conference paper 2019
document
Pelsmaeker, D.A.A. (author), van Antwerpen, H. (author), Visser, Eelco (author)
New programming languages often lack good IDE support, as developing advanced semantic editor services takes additional effort. In previous work we discussed the operational requirements of a constraint solver that leverages the declarative type system specification of a language to provide language-parametric semantic editor services. In...
conference paper 2019
document
Rouvoet, A.J. (author), van Antwerpen, H. (author), Poulsen, C.B. (author), Krebbers, R.J. (author), Visser, Eelco (author)
There is a large gap between the specification of type systems and the implementation of their type checkers, which impedes reasoning about the soundness of the type checker with respect to the specification. A vision to close this gap is to automatically obtain type checkers from declarative programming language specifications. This moves...
journal article 2020
document
van Antwerpen, H. (author), Visser, Eelco (author)
Compilers that can type check compilation units in parallel can make more efficient use of multi-core architectures, which are nowadays widespread. Developing parallel type checker implementations is complicated by the need to handle concurrency and synchronization of parallel compilation units. Dependencies between compilation units are...
conference paper 2021
document
Pelsmaeker, D.A.A. (author), van Antwerpen, H. (author), Poulsen, C.B. (author), Visser, Eelco (author)
Code completion is an editor service in IDEs that proposes code fragments for the user to insert at the caret position in their code. Code completion should be sound and complete. It should be sound, such that it only proposes fragments that do not violate the syntactic and static semantic rules of the language. It should be complete, such that...
journal article 2022
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
Searched for: +
(1 - 9 of 9)