Results 1 
7 of
7
Semantic Lego
, 1995
"... Denotational semantics [Sch86] is a powerful framework for describing programming languages; however, its descriptions lack modularity: conceptually independent language features influence each others' semantics. We address this problem by presenting a theory of modular denotational semantics. Follo ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
Denotational semantics [Sch86] is a powerful framework for describing programming languages; however, its descriptions lack modularity: conceptually independent language features influence each others' semantics. We address this problem by presenting a theory of modular denotational semantics. Following Mosses [Mos92], we divide a semantics into two parts, a computation ADT and a language ADT (abstract data type). The computation ADT represents the basic semantic structure of the language. The language ADT represents the actual language constructs, as described by a grammar. We define the language ADT using the computation ADT; in fact, language constructs are polymorphic over many different computation ADTs. Following Moggi [Mog89a], we build the computation ADT from composable parts, using monads and monad transformers. These techniques allow us to build many different computation ADTs, and, since our language constructs are polymorphic, many different language semantics. We autom...
A Syntactic Approach to Modularity in Denotational Semantics
 IN PROCEEDINGS OF THE CONFERENCE ON CATEGORY THEORY AND COMPUTER SCIENCE
, 1993
"... This paper proposes a syntactic reformulation of the modular approach to Denotational Semantics in [Mog89a, Mog91a]. This reformulation is based on a duality between model constructions and translations of theories (often called relative interpretations), analogous to GabrielUlmer duality. To de ..."
Abstract

Cited by 24 (4 self)
 Add to MetaCart
This paper proposes a syntactic reformulation of the modular approach to Denotational Semantics in [Mog89a, Mog91a]. This reformulation is based on a duality between model constructions and translations of theories (often called relative interpretations), analogous to GabrielUlmer duality. To demonstrate the simplicity and usability of the syntactic reformulation, we give a sample of theories and translations, which can be used to give semantics to concurrent languages (via translation into suitable metalanguages).
Polymorphic embedding of DSLs
 In GPCE’08. ACM
, 2008
"... The influential pure embedding methodology of embedding domainspecific languages (DSLs) as libraries into a generalpurpose host language forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domainspecific analyses. We propo ..."
Abstract

Cited by 18 (3 self)
 Add to MetaCart
The influential pure embedding methodology of embedding domainspecific languages (DSLs) as libraries into a generalpurpose host language forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domainspecific analyses. We propose polymorphic embedding of DSLs, where many different interpretations of a DSL can be provided as reusable components, and show how polymorphic embedding can be realized in the programming language Scala. With polymorphic embedding, the static typesafety, modularity, composability and rapid prototyping of pure embedding are reconciled with the flexibility attainable by external toolchains. Categories and Subject Descriptors D.3.2 [Programming Languages]: Language Classifications—Extensible languages, Specialized
Programming Metalogics with a Fixpoint Type
, 1992
"... A programming metalogic is a formal system into which programming languages can be translated and given meaning. The translation should both reflect the structure of the language and make it easy to prove properties of programs. This thesis develops certain metalogics using techniques of category th ..."
Abstract

Cited by 12 (6 self)
 Add to MetaCart
A programming metalogic is a formal system into which programming languages can be translated and given meaning. The translation should both reflect the structure of the language and make it easy to prove properties of programs. This thesis develops certain metalogics using techniques of category theory and treats recursion in a new way. The notion of a category with fixpoint object is defined. Corresponding to this categorical structure there are type theoretic equational rules which will be present in all of the metalogics considered. These rules define the fixpoint type which will allow the interpretation of recursive declarations. With these core notions FIX categories are defined. These are the categorical equivalent of an equational logic which can be viewed as a very basic programming metalogic. Recursion is treated both syntactically and categorically. The expressive power of the equational logic is increased by embedding it in an intuitionistic predicate calculus, giving rise to the FIX logic. This contains propositions about the evaluation of computations to values and an induction principle which is derived from the definition of a fixpoint object as an initial algebra. The categorical structure which accompanies the FIX logic is defined, called a FIX hyperdoctrine, and certain existence and disjunction properties of FIX are stated. A particular FIX hyperdoctrine is constructed and used in the proof of the same properties. PCFstyle languages are translated into the FIX logic and computational adequacy reaulta are proved. Two languages are studied: Both are similar to PCF except one has call by value recursive function declararations and the other higher order conditionals. ...
Power Domains Supporting Recursion and Failure
 In CAAP'92
, 1998
"... Following the program of Moggi, the semantics of a simple nondeterministic functional language with recursion and failure is described by a monad. We show that this monad cannot be any of the known power domain constructions, because they do not handle nontermination properly. Instead, a novel con ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Following the program of Moggi, the semantics of a simple nondeterministic functional language with recursion and failure is described by a monad. We show that this monad cannot be any of the known power domain constructions, because they do not handle nontermination properly. Instead, a novel construction is proposed and investigated. It embodies both nondeterminism (choice and failure) and possible nontermination caused by recursion. 1 Introduction Following the proposals of Moggi [Mog89, Mog91b], functional languages with various notions of computations can be denotationally described by means of monads. Monads are constructions mapping domains of values into domains of computations for these values. Computations involving destructive assignments, for instance, are handled by the state transformer monad [Wad90], whereas computations by nondeterministic choice are handled by power domain constructions [Plo76, Smy78, Gun90]. All known power domain constructions and many others ar...
Bimonadic Semantics for Basic Pattern Matching Calculi
, 2006
"... The pattern matching calculi introduced by the first author are a refinement of the λcalculus that integrates mechanisms appropriate for finegrained modelling of nonstrict pattern matching. While related work in the literature only uses a single monad, typically Maybe, for matchings, we present a ..."
Abstract
 Add to MetaCart
The pattern matching calculi introduced by the first author are a refinement of the λcalculus that integrates mechanisms appropriate for finegrained modelling of nonstrict pattern matching. While related work in the literature only uses a single monad, typically Maybe, for matchings, we present an axiomatic approach to semantics of these pattern matching calculi using two monads, one for expressions and one for matchings. Although these two monads only need to be relatively lightly coupled, this semantics implies soundness of all core PMC rules, and is a useful tool for exploration of the design space for pattern matching calculi. Using lifting and Maybe monads, we obtain standard Haskell semantics, and by adding another level of Maybe to both, we obtain a denotational semantics of the “matching failure as exceptions” approach of Erwig and Peyton Jones. Using listlike monads opens up interesting extensions in the direction of functionallogic programming. A short version of this report appears as [Kahl, Carette + 2006].