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 pure object languages, is to use a dependently-typed language to encode the object language type system in the definition of the abstract syntax. Using such intrinsically-typed abstract syntax definitions allows the host language type checker to verify automatically that the interpreter satisfies type safety. Does this approach scale to larger and more realistic object languages, and in particular to ...
We propose a conservative extension of the polymorphic lambda calculus ()# * ) as an intermediate la...
. This paper presents an imperative object calculus designed to support class-based programming via ...
Software developers often structure programs in such a way that different pieces of code constitute ...
A definitional interpreter is an interpreter which uses the semantics of its own host language to de...
Tagless interpreters for well-typed terms in some object language are a standard example of the powe...
We present an imperative object-oriented language featuring a dependent type system designed to supp...
This paper presents an untyped lambda calculus, extended with object primitives that reflect the cap...
. We present a declarative specification method based on natural semantics which is suitable for th...
Starting with a pragmatical (but formal) definition of type in object-oriented languages, this paper...
Most existing programming languages provide little support to formally state and prove properties ab...
The syntax of almost every programming language includes a notion of binder and corresponding bound ...
Tese de doutoramento, Informática (Ciência da Computação), Universidade de Lisboa, Faculdade de Ciên...
Dependent types and multi-stage programming have both been used, separately, in programming language...
International audienceThis paper describes a methodology for defining an executable abstract interpr...
Formal verification of real-world software systems remains challenging for a number of reasons, incl...
We propose a conservative extension of the polymorphic lambda calculus ()# * ) as an intermediate la...
. This paper presents an imperative object calculus designed to support class-based programming via ...
Software developers often structure programs in such a way that different pieces of code constitute ...
A definitional interpreter is an interpreter which uses the semantics of its own host language to de...
Tagless interpreters for well-typed terms in some object language are a standard example of the powe...
We present an imperative object-oriented language featuring a dependent type system designed to supp...
This paper presents an untyped lambda calculus, extended with object primitives that reflect the cap...
. We present a declarative specification method based on natural semantics which is suitable for th...
Starting with a pragmatical (but formal) definition of type in object-oriented languages, this paper...
Most existing programming languages provide little support to formally state and prove properties ab...
The syntax of almost every programming language includes a notion of binder and corresponding bound ...
Tese de doutoramento, Informática (Ciência da Computação), Universidade de Lisboa, Faculdade de Ciên...
Dependent types and multi-stage programming have both been used, separately, in programming language...
International audienceThis paper describes a methodology for defining an executable abstract interpr...
Formal verification of real-world software systems remains challenging for a number of reasons, incl...
We propose a conservative extension of the polymorphic lambda calculus ()# * ) as an intermediate la...
. This paper presents an imperative object calculus designed to support class-based programming via ...
Software developers often structure programs in such a way that different pieces of code constitute ...