Searched for: subject%3A%22Definitional%255C+interpreters%22
(1 - 11 of 11)
document
Poulsen, C.B. (author)
Substitution is a common and popular approach to implementing name binding in definitional interpreters. A common pitfall of implementing substitution functions is variable capture. The traditional approach to avoiding variable capture is to rename variables. However, traditional renaming makes for an inefficient interpretation strategy....
conference paper 2023
document
Pîrcălăboiu, Laura (author)
Recent years have seen a surge of interest for dynamic testing techniques, one of which is symbolic execution. It is the main point of interest of this research paper, in which we give an overview of a framework for symbolically executing definitional interpreters. We will also discuss techniques that we made use of in developing the symbolic...
bachelor thesis 2021
document
Juhošová, Sára (author)
Manually testing definitional interpreters and their type checkers is a tedious and error-prone process which can largely benefit from automation. This study evaluates the effectiveness of property-based testing on errors in type checkers. Metrics used include the ability to catch different types of errors as well as the ability to provide a...
bachelor thesis 2021
document
Moraru, Alexandru (author)
This paper presents an evaluation of different generation methods of input expressions to definitional interpreters. We compare three different ways of generating expressions of a specified algebraic data type. The approaches that we describe are QuickCheck, SmallCheck and a uniform generation technique, as laid out in their original papers....
bachelor thesis 2021
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
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
Vergu, V.A. (author), Tolmach, Andrew (author), Visser, Eelco (author)
DynSem is a domain-specific language for concise specification of the dynamic semantics of programming languages, aimed at rapid experimentation and evolution of language designs. To maintain a short definition-to-execution cycle, DynSem specifications are meta-interpreted. Meta-interpretation introduces runtime overhead that is difficult to...
conference paper 2019
document
Papadopoulos, Giannis (author)
Large companies suffer from the increasing complexity that exist in their software systems. Evolving their software becomes even harder if we consider that a change in one system can affect several other parts of their software architecture. Especially banks that need to be always complied with regulations, have to constantly make changes in...
master thesis 2018
document
van den Berg, Rob (author)
A definitional interpreter is an interpreter which uses the semantics of its own host language to define those of its object language. Traditionally, a seperate type safety proof is used for such an interpreter. Using a "typesafe-by-construction" approach, where the typesafety is proven by expressing the type system of the object language in the...
bachelor thesis 2018
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 Der Lippe, Tim (author), Smith, Thomas (author), Pelsmaeker, Daniël (author), Visser, Eelco (author)
In this paper, we report on our experience in teaching a course on concepts of programming languages at TU Delft based on Krishnamurthi's PAPL book with the definitional interpreter approach using Scala as meta-language and using the WebLab learning management system. In particular, we discuss our experience with encoding of definitional...
conference paper 2016
Searched for: subject%3A%22Definitional%255C+interpreters%22
(1 - 11 of 11)