This paper presents a modular and extensible style of language specification based on metacomputations. This style uses two monads to factor the static and dynamic parts of the specification, thereby staging the specification and achieving strong binding-time separation. Because metacomputations are defined in terms of monads, they can be constructed modularly and extensibly using monad transformers. A number of language constructs are specified: expressions, control-flow, imperative features, block structure, and higher-order functions and recursive bindings. Metacomputation-style specification lends itself to semantics-directed compilation, which we demonstrate by creating a modular compiler for a higher-order, imperative, Algol-like lang...
Applications that manipulate programs as data are called meta programs. Examples of meta programs ar...
We propose a framework for specification of programming language semantics, abstract and concrete sy...
he task of designing and implementing a compiler can be a difficult and error-prone process. In this...
283 p.Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 2001.This thesis explores the cons...
In previous work, we proposed a new approach to the problem of implementing compilers in a modular m...
A meta-language for semantics has a high degree of modularitywhen descriptions of individual languag...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Associated research group: Minnesota Extensible Language ToolsAlgebraic compilers provide a powerful...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Abstract. Algebraic compilers provide a powerful and convenient mech-anism for specifying language t...
We consider the principle “a new model is a model of an existing one ” as the main scheme for derivi...
Providing proper modularity is one of the major challenges in software development. In the context o...
The task of designing and implementing a compiler can be a di#cult and error-prone process. In this ...
A key problem in metaprogramming and specifically in generative programming is to guarantee that gen...
Applications that manipulate programs as data are called meta programs. Examples of meta programs ar...
We propose a framework for specification of programming language semantics, abstract and concrete sy...
he task of designing and implementing a compiler can be a difficult and error-prone process. In this...
283 p.Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 2001.This thesis explores the cons...
In previous work, we proposed a new approach to the problem of implementing compilers in a modular m...
A meta-language for semantics has a high degree of modularitywhen descriptions of individual languag...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Associated research group: Minnesota Extensible Language ToolsAlgebraic compilers provide a powerful...
Formalizing meta-theory, or proofs about programming languages, in a proof assistant has many well-k...
Abstract. Algebraic compilers provide a powerful and convenient mech-anism for specifying language t...
We consider the principle “a new model is a model of an existing one ” as the main scheme for derivi...
Providing proper modularity is one of the major challenges in software development. In the context o...
The task of designing and implementing a compiler can be a di#cult and error-prone process. In this ...
A key problem in metaprogramming and specifically in generative programming is to guarantee that gen...
Applications that manipulate programs as data are called meta programs. Examples of meta programs ar...
We propose a framework for specification of programming language semantics, abstract and concrete sy...
he task of designing and implementing a compiler can be a difficult and error-prone process. In this...