This is a tutorial on using type-indexed embedding/projection pairs when writing interpreters in statically-typed functional languages. The method allows (higher-order) values in the interpreting language to be embedded in the interpreted language and values from the interpreted language may be projected back into the interpreting one. This is particularly useful when adding command-line interfaces or scripting languages to applications written in functional languages. We first describe the basic idea and show how it may be extended to languages with recursive types and applied to elementary meta-programming. We then show how the method combines with Filinski’s continuation-based monadic reflection operations to define an ‘extensional ’ ver...
Interpretation is an implicit part of today’s programming; it has great power but is overused and ha...
Recent developments in the systematic construction of abstract interpreters hinted at the possibilit...
Programming with monads can be advantageous even in imperative languages with builtin support for si...
AbstractThe structure of monadic functional programs allows the integration of many different featur...
A functional language is introduced, whose type system is defined by its meta-circular interpreter. ...
We present a program interpretation technique relying on an higher order abstract syntax which allow...
The structure of monadic functional programs allows the integration of many different features by ju...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
Abstract. This paper proposes and analyses a monadic translation of an intuitionistic sequent calcul...
Abstract We present a new model, based on monads, for performing input/output in a non-strict, purel...
We examine the problem of finding fully abstract translations between programming languages, i.e., t...
AbstractThis paper sketches a foundation for programming with higher-order abstract syntax and expli...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
Abstract —Those programming languages that contain self-interpreters have the added power of reflect...
We examine the problem of finding fully abstract translations between programming languages, i.e., t...
Interpretation is an implicit part of today’s programming; it has great power but is overused and ha...
Recent developments in the systematic construction of abstract interpreters hinted at the possibilit...
Programming with monads can be advantageous even in imperative languages with builtin support for si...
AbstractThe structure of monadic functional programs allows the integration of many different featur...
A functional language is introduced, whose type system is defined by its meta-circular interpreter. ...
We present a program interpretation technique relying on an higher order abstract syntax which allow...
The structure of monadic functional programs allows the integration of many different features by ju...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
Abstract. This paper proposes and analyses a monadic translation of an intuitionistic sequent calcul...
Abstract We present a new model, based on monads, for performing input/output in a non-strict, purel...
We examine the problem of finding fully abstract translations between programming languages, i.e., t...
AbstractThis paper sketches a foundation for programming with higher-order abstract syntax and expli...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
Abstract —Those programming languages that contain self-interpreters have the added power of reflect...
We examine the problem of finding fully abstract translations between programming languages, i.e., t...
Interpretation is an implicit part of today’s programming; it has great power but is overused and ha...
Recent developments in the systematic construction of abstract interpreters hinted at the possibilit...
Programming with monads can be advantageous even in imperative languages with builtin support for si...