Results 21 - 30
of
50
Building interpreters by transforming stratified monads
, 1994
"... This paper shows how to construct programming language interpreters from a set of mix-and-match parts. By composing a sequence of semantic modules, we form an abstract data type (ADT) of computations, which is then used to build an ADT of language constructs. We represent the ADT of computations by ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
This paper shows how to construct programming language interpreters from a set of mix-and-match parts. By composing a sequence of semantic modules, we form an abstract data type (ADT) of computations, which is then used to build an ADT of language constructs. We represent the ADT of computations by a stratified monad and the modules by stratified monad transformers. These results extend previous work on monads and have applications to language extensibility, interpreter construction, and the study of semantic models.
Prological Features In A Functional Setting Axioms And Implementations
- In Third Fuji Int. Symp. on Functional and Logic Programming
, 1998
"... this paper is twofold. First, we show that Prological features ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
this paper is twofold. First, we show that Prological features
Eekelen. Reasoning About Deterministic Concurrent Functional I/O
- Proceedings of IFL 2004, volume LNCS3474
, 2005
"... Abstract. This paper develops a language for reasoning about concurrent functional I/O. We assume that the API is specified as statetransformers on a single world state. We then prove that under certain conditions evaluation in this language is deterministic, and give some examples. All properties w ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Abstract. This paper develops a language for reasoning about concurrent functional I/O. We assume that the API is specified as statetransformers on a single world state. We then prove that under certain conditions evaluation in this language is deterministic, and give some examples. All properties were machine-verified using the Sparkle proofassistant and using Core-Clean as a meta-language. 1
On the expressive power of Constructor Classes
- In Proceedings of the 1994 Glasgow Functional Programming Workshop
, 1995
"... The aim of this paper is to explore the expressive power of constructor classes, a generalisation of type classes. We present a categorical prelude for Gofer, a programming environment which supports constructor classes. The prelude contains much more code than the one which is dealt with in the ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
The aim of this paper is to explore the expressive power of constructor classes, a generalisation of type classes. We present a categorical prelude for Gofer, a programming environment which supports constructor classes. The prelude contains much more code than the one which is dealt with in the paper. We do not go into all the details of the prelude.
From Inheritance to Feature Interaction or Composing Monads
, 1997
"... We show that techniques for monad composition can be used nicely for modeling object-oriented programming concepts. In this functional setting, we develop a new model for composing objects from individual features in a modular way. Features are similar to abstract subclasses, but separate the co ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
We show that techniques for monad composition can be used nicely for modeling object-oriented programming concepts. In this functional setting, we develop a new model for composing objects from individual features in a modular way. Features are similar to abstract subclasses, but separate the core functionality of a subclass from overwriting methods. We view
Efficient monadic-style backtracking
, 1996
"... Lists are ubiquitous in functional programming. The list constructor forms an instance of a monad capturing non-deterministic computations. Despite its popularity the list monad suffers from serious drawbacks: It relies in an essential way on lazy evaluation, it is inefficient, and it is not modular ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Lists are ubiquitous in functional programming. The list constructor forms an instance of a monad capturing non-deterministic computations. Despite its popularity the list monad suffers from serious drawbacks: It relies in an essential way on lazy evaluation, it is inefficient, and it is not modular. We develop an alternative based on continuations, which remedies these shortcomings. Essential use is made of constructor classes and second-order types, which sets the work apart from other approaches. Continuation-based backtracking monads behave amazingly well in practice: If an optimizing compiler is used, their performance is commensurate to that of logic languages. The class mechanism greatly eases the task of adding features to the basic machinery. We study three extensions in detail: control
COPRODUCTS OF IDEAL MONADS
, 2004
"... The question of how to combine monads arises naturally in many areas with much recent interest focusing on the coproduct of two monads. In general, the coproduct of arbitrary monads does not always exist. Although a rather general construction was given by ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
The question of how to combine monads arises naturally in many areas with much recent interest focusing on the coproduct of two monads. In general, the coproduct of arbitrary monads does not always exist. Although a rather general construction was given by
A Monadic Interpretation of Tactics
, 2002
"... Many proof tools use `tactic languages' as programs to direct their proofs. We present a simplified idealised tactic language, and describe its denotational semantics. The language has many applications outside theorem-proveo activ5QbG) The semantics is parametrised by a monad (plus additional struc ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Many proof tools use `tactic languages' as programs to direct their proofs. We present a simplified idealised tactic language, and describe its denotational semantics. The language has many applications outside theorem-proveo activ5QbG) The semantics is parametrised by a monad (plus additional structure). By instantiating this inv arious ways, the core semantics of a number of di#erent tactic languages is obtained. 1 Int roduct45 The notiB of a tactic as a program usedi the constructifi of a (machic[ assi46fi8 formal proof has become quie wie[S---#fifi[ Tacti# orifi---#z[ i the work of Gordon et al [GMW79] onEdi burgh LCF. The extent to whi h other`tacti4 based' systems istems[ t essentien[ the same style of programmifi faci---#---[I vari4 consi[I8#Bfi . InEdi burgh LCF, atacti does notit[8B construct a proof. Rather,i ti s usedi backwardreasoni[ to construct a vali#fiz[I functi[ whi h mayi46z8 prove thedesi6B property. Theoremhood i guarded by use of a `safe datatype', and only sound vali484[I functi[I may construct elements ofthi type. In other work, the type of theoremsi protected by havi8 the class oftacti--- icti protected, so thati i ia ossiSB tobui# unsound proofs. The account here tends towards the secondvion though the treatment oftacti6 i s actually so abstract that thi may not be an i[ edi---# t to i[ appli#[IS# i eipli sense. Whie. tacti[ arewiS---fi6[IS--- tacti programmi--- remai4 adiBfiBS task. Inthi paper, weconsi#[ abstractdescri[S#fi--- oftactifi[ wit the hope that modern algori------ desii techniSzS# such as thosedescri ed byBiS and de Moor [BdM97], can be brought to bear on thedi8S---fi[IS ontacti programmi#4 Earlia di#------S[ISS oftacti6 i n the abstract (wiract operati6z[ bii to any parti[ISS proof tool)i)[SS--- those by SchmiB [Sch84] and Mi4#...
An algebraic view of program composition
- Algebraic Methodology and Software Technology, number 1548 in Lect. Notes Comp. Sci
, 1998
"... Abstract. We propose a general categorical setting for modeling program composition in which the call-by-value and call-by-name disciplines fit as special cases. Other notions of composition arising in denotational semantics are captured in the same framework: our leading examples are nondeterminist ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. We propose a general categorical setting for modeling program composition in which the call-by-value and call-by-name disciplines fit as special cases. Other notions of composition arising in denotational semantics are captured in the same framework: our leading examples are nondeterministic call-by-need programs and nonstrict functions with side effects. Composition of such functions is treated in our framework with the same degree of abstraction that Moggi’s categorical approach based on monads allows in the treatment of call-by-value programs. By virtue of such abstraction, interesting program equivalences can be validated axiomatically in mathematical models obtained by means of modular constructions. 1
A Programming Language for Probabilistic Computation
, 2005
"... As probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages to facilitate their modeling. Most of the existing probabilistic languages, however, focus only on discrete distributions, and there has been little effort to develop ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
As probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages to facilitate their modeling. Most of the existing probabilistic languages, however, focus only on discrete distributions, and there has been little effort to develop probabilistic languages whose expressive power is beyond discrete distributions. This dissertation presents a probabilistic language, called PTP (ProbabilisTic Programming), which supports all kinds of probability distributions.

