Searched for: collection%253Air
(1 - 9 of 9)
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
van der Rest, C.R. (author), Poulsen, C.B. (author), Rouvoet, A.J. (author), Visser, Eelco (author), Mosses, P.D. (author)
Specifying and mechanically verifying type safe programming languages requires significant effort. This effort can in theory be reduced by defining and reusing pre-verified, modular components. In practice, however, existing approaches to modular mechanical verification require many times as much specification code as plain, monolithic...
journal article 2022
document
Rouvoet, A.J. (author), Poulsen, C.B. (author), Krebbers, R.J. (author), Visser, Eelco (author)
An intrinsically-typed definitional interpreter is a concise specification of dynamic semantics, that is executable and type safe by construction. Unfortunately, scaling intrinsically-typed definitional interpreters to more complicated object languages often results in definitions that are cluttered with manual proof work. For linearly-typed...
working paper 2020
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
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
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
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
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
document
Poulsen, C.B. (author), Neron, P.J.M. (author), Tolmach, Andrew (author), Visser, Eelco (author)
Our paper introduces a systematic approach to the alignment of names in the static structure of a program, and memory layout and access during its execution. We develop a uniform memory model consisting of frames that instantiate the scopes in the scope graph of a program. This provides a language-independent correspondence between static scopes...
other 2016
Searched for: collection%253Air
(1 - 9 of 9)