Results 11  20
of
36
Tensors of Comodels and Models for Operational Semantics
"... In seeking a unified study of computational effects, in particular in order to give a general operational semantics agreeing with the standard one for state, one must take account of the coalgebraic structure of state. Axiomatically, one needs a countable Lawvere theory L, a comodel C, typically the ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
(Show Context)
In seeking a unified study of computational effects, in particular in order to give a general operational semantics agreeing with the standard one for state, one must take account of the coalgebraic structure of state. Axiomatically, one needs a countable Lawvere theory L, a comodel C, typically the final one, and a model M, typically free; one then seeks a tensor C ⊗ M of the comodel with the model that allows operations to flow between the two. We describe such a tensor implicit in the abstract category theoretic literature, explain its significance for computational effects, and calculate it in leading classes of examples, primarily involving state.
Generic Models for Computational Effects
"... A Freydcategory is a subtle generalisation of the notion of a category with finite products. It is suitable for modelling environments in callbyvalue programming languages, such as the computational λcalculus, with computational effects. We develop the theory of Freydcategories with that in min ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
A Freydcategory is a subtle generalisation of the notion of a category with finite products. It is suitable for modelling environments in callbyvalue programming languages, such as the computational λcalculus, with computational effects. We develop the theory of Freydcategories with that in mind. We first show that any countable Lawvere theory, hence any signature of operations with countable arity subject to equations, directly generates a Freydcategory. We then give canonical, universal embeddings of Freydcategories into closed Freydcategories, characterised by being free cocompletions. The combination of the two constructions sends a signature of operations and equations to the Kleisli category for the monad on the category Set generated by it, thus refining the analysis of computational effects given by monads. That in turn allows a more structural analysis of the λccalculus. Our leading examples of signatures arise from sideeffects, interactive input/output and exceptions. We extend our analysis to an enriched setting in order to account for recursion and for computational effects and signatures that inherently involve it, such as partiality, nondeterminism and probabilistic nondeterminism. Key words: Freydcategory, enriched Yoneda embedding, conical colimit completion, canonical model
Semantics for Local Computational Effects
, 2006
"... Starting with Moggi’s work on monads as refined to Lawvere theories, we give a general construct that extends denotational semantics for a global computational effect canonically to yield denotational semantics for a corresponding local computational effect. Our leading example yields a construction ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Starting with Moggi’s work on monads as refined to Lawvere theories, we give a general construct that extends denotational semantics for a global computational effect canonically to yield denotational semantics for a corresponding local computational effect. Our leading example yields a construction of the usual denotational semantics for local state from that for global state. Given any Lawvere theory L, possibly countable and possibly enriched, we first give a universal construction that extends L, hence the global operations and equations of a given effect, to incorporate worlds of arbitrary finite size. Then, making delicate use of the final comodel of the ordinary Lawvere theory L, we give a construct that uniformly allows us to model block, the universality of the final comodel yielding a universal property of the construct. We illustrate both the universal extension of L and the canonical construction of block by seeing how they work in the case of state.
P.: Reusable components of semantic specifications
 In: Modularity’14
, 2014
"... Abstract. Semantic specifications of programming languages typically have poor modularity. This hinders reuse of parts of the semantics of one language when specifying a different language – even when the two languages have many constructs in common – and evolution of a language may require major r ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
Abstract. Semantic specifications of programming languages typically have poor modularity. This hinders reuse of parts of the semantics of one language when specifying a different language – even when the two languages have many constructs in common – and evolution of a language may require major reformulation of its semantics. Such drawbacks have discouraged language developers from using formal semantics to document their designs. In the PLanCompS project, we have developed a componentbased approach to semantics. Here, we explain its modularity aspects, and present an illustrative case study: a componentbased semantics forCaml Light. We have tested the correctness of the semantics by running programs on an interpreter generated from the semantics, comparing the output with that produced on the standard implementation of the language. Our approach provides good modularity, facilitates reuse, and should support coevolution of languages and their formal semantics. It could be particularly useful in connection with domainspecific languages and languagedriven software development.
Towards Modular Compilers for Effects
"... Compilers are traditionally factorised into a number of separate phases, such as parsing, type checking, code generation, etc. However, there is another potential factorisation that has received comparatively little attention: the treatment of separate language features, such as mutable state, inpu ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Compilers are traditionally factorised into a number of separate phases, such as parsing, type checking, code generation, etc. However, there is another potential factorisation that has received comparatively little attention: the treatment of separate language features, such as mutable state, input/output, exceptions, concurrency and so forth. In this article we focus on the problem of modular compilation, in which the aim is to develop compilers for separate language features independently, which can then be combined as required. We summarise our progress to date, issues that have arisen, and further work.
ComponentBased Description of Programming Languages
 In Visions of Computer Science, Proceedings of BCS International Academic Research Conference 2008
, 2008
"... Research in formal description of programming languages over the past four decades has led to some significant achievements. These include formal syntax and semantics for complete major programming languages, and theoretical foundations for novel features that might be included in future languages. ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
(Show Context)
Research in formal description of programming languages over the past four decades has led to some significant achievements. These include formal syntax and semantics for complete major programming languages, and theoretical foundations for novel features that might be included in future languages. Nevertheless, to give a completely formal, validated description of any significant programming language using the conventional frameworks remains an immense effort, disproportionate to its perceived benefits. Our diagnosis of the causes of this disappointing situation highlights two major deficiencies in the pragmatic aspects of formal language descriptions in conventional frameworks: lack of reusable components, and poor tool support. Part of the proposed remedy is a radical shift to a novel componentbased paradigm for the development of complete language descriptions, based on simple interfaces between descriptions of syntactic and semantic aspects, and employing frameworks that allow independent description of individual programming constructs. The introduction of a languageindependent notation for common programming constructs maximises the reusability of components. Tool support for componentbased language description is being developed using the ASF+SDF MetaEnvironment; the aim is to provide an efficient componentbased workbench for use in design and implementation of future programming languages, accompanied by an online repository for validated formal descriptions of programming constructs and languages. Keywords: 1.
Logic for Computational Effects: work in progress
"... We outline a possible logic that will allow us to give a unified approach to reasoning about computational effects. The logic is given by extending Moggi's computational *calculus by basic types and a signature, the latter given by constant symbols, function symbols, and operation symbols, a ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We outline a possible logic that will allow us to give a unified approach to reasoning about computational effects. The logic is given by extending Moggi's computational *calculus by basic types and a signature, the latter given by constant symbols, function symbols, and operation symbols, and by including a _ operator. We give both syntax and semantics for the logic except for _. We consider a number of sound and complete classes of models, all given in categorytheoretic terms. We illustrate the ideas with some of our leading examples of computational effects, and we observe that operations give rise to natural modalities.
Compilation à la Carte
"... In previous work, we proposed a new approach to the problem of implementing compilers in a modular manner, by combining earlier work on the development of modular interpreters using monad transformers with the à la carte approach to modular syntax. In this article, we refine and extend our existing ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
(Show Context)
In previous work, we proposed a new approach to the problem of implementing compilers in a modular manner, by combining earlier work on the development of modular interpreters using monad transformers with the à la carte approach to modular syntax. In this article, we refine and extend our existing framework in a number of directions. In particular, we show how generalised algebraic datatypes can be used to support a more modular approach to typing individual language features, we increase the expressive power of the framework by considering mutable state, variable binding, and the issue of noncommutative effects, and we show how the Zinc Abstract Machine can be adapted to provide a modular universal target machine for our modular compilers.
Equational Systems and Free Constructions (Extended Abstract)
"... Abstract. The purpose of this paper is threefold: to present a general abstract, yet practical, notion of equational system; to investigate and develop a theory of free constructions for such equational systems; and to illustrate the use of equational systems as needed in modern applications, specif ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
Abstract. The purpose of this paper is threefold: to present a general abstract, yet practical, notion of equational system; to investigate and develop a theory of free constructions for such equational systems; and to illustrate the use of equational systems as needed in modern applications, specifically to the theory of substitution in the presence of variable binding and to models of namepassing process calculi. 1
Some Varieties of Equational Logic (Extended Abstract), Algebra
 Meaning, and Computation, Essays Dedicated to Joseph A. Goguen on the Occasion of His 65th Birthday
, 2006
"... been a major theme of Joseph Goguen’s research, perhaps even the major theme. One strand of this work concerns algebraic datatypes. Recently there has been some interest in what one may call algebraic computation types. As we will show, these are also given by equational theories, if one only unders ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
been a major theme of Joseph Goguen’s research, perhaps even the major theme. One strand of this work concerns algebraic datatypes. Recently there has been some interest in what one may call algebraic computation types. As we will show, these are also given by equational theories, if one only understands the notion of equational logic in somewhat broader senses than usual. One moral of our work is that, suitably considered, equational logic is not tied to the usual firstorder syntax of terms and equations. Standard equational logic has proved a useful tool in several branches of computer science, see, for example, the RTA conference series [9] and textbooks, such as [1]. Perhaps the possibilities for richer varieties of equational logic discussed here will lead to further applications. We begin with an explanation of computation types. Starting around 1989, Eugenio Moggi introduced the idea of monadic notions of computation [11, 12]