Results 1 -
6 of
6
A metalanguage for structural operational semantics
- In Symposium on Trends in Functional Programming
, 2007
"... We present MLSOS, a functional metalanguage for encoding definitions of structural operational semantics. The key features of this language are inbuilt support for representing object-language binding structures and performing proof-search. MLSOS uses the nominal approach to dealing with binders and ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
(Show Context)
We present MLSOS, a functional metalanguage for encoding definitions of structural operational semantics. The key features of this language are inbuilt support for representing object-language binding structures and performing proof-search. MLSOS uses the nominal approach to dealing with binders and a FreshML-style generative treatment of atoms. This allows us to prototype systems in a natural way, starting from a semi-formal specification. We outline the main design choices behind the language and illustrate its use. 1
Resolving Inductive Definitions with Binders in Higher-Order Typed Functional Programming
, 2009
"... This paper studies inductive definitions involving binders, in which aliasing between free and bound names is permitted. Such aliasing occurs in informal specifications of operational semantics, but is excluded by the common representation of binding as meta-level λ-abstraction. Drawing upon ideas f ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
(Show Context)
This paper studies inductive definitions involving binders, in which aliasing between free and bound names is permitted. Such aliasing occurs in informal specifications of operational semantics, but is excluded by the common representation of binding as meta-level λ-abstraction. Drawing upon ideas from functional logic programming, we represent such definitions with aliasing as recursively defined functions in a higher-order typed functional programming language that extends core ML with types for name-binding, a type of “semi-decidable propositions” and existential quantification for types with decidable equality. We show that the representation is sound and complete with respect to the language’s operational semantics, which combines the use of evaluation contexts with constraint programming. We also give a new and simple proof that the associated constraint problem is NP-complete.
Incremental rebinding with name polymorphism
"... Abstract We propose an extension with name variables of a calculus for incremental rebinding of code introduced in previous work. Names, which can be either constants or variables, are used as interface of fragments of code with free variables. Open code can be dynamically rebound by applying a reb ..."
Abstract
- Add to MetaCart
Abstract We propose an extension with name variables of a calculus for incremental rebinding of code introduced in previous work. Names, which can be either constants or variables, are used as interface of fragments of code with free variables. Open code can be dynamically rebound by applying a rebinding, which is an association from names to terms. Rebindings can contain free variables as well, hence rebinding is incremental, and they can be manipulated by operators such as overriding and renaming. By using name variables, it is possible to write terms which are parametric in their nominal interface and/or in the way it is adapted, greatly enhancing expressivity. The type system is correspondingly extended by constrained name-polymorphic types, where simple inequality constraints prevent conflicts among parametric name interfaces.
Formalization of Generative Unbinding
, 2007
"... Pitts and Shinwell introduced an idealized programming language containing constructs for binding and also for pattern matching against this binding construct. They prove a result about which operations on names can co-exist with the binding construct in this language. What makes this construct inte ..."
Abstract
- Add to MetaCart
(Show Context)
Pitts and Shinwell introduced an idealized programming language containing constructs for binding and also for pattern matching against this binding construct. They prove a result about which operations on names can co-exist with the binding construct in this language. What makes this construct interesting is that it generates a new name at the moment of “unbinding”. In this report we describe a formalization for some of the results of Pitts and Shinwell. 1
Replace
"... this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. Representing names with variables in nominal abstract syntax ..."
Abstract
- Add to MetaCart
(Show Context)
this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. Representing names with variables in nominal abstract syntax