Results 1 
7 of
7
Erratic Fudgets: A Semantic Theory for an Embedded Coordination Language
 SCIENCE OF COMPUTER PROGRAMMING
, 2003
"... The powerful abstraction mechanisms of functional programming languages provide the means to develop domainspecific programming languages within the language itself. Typically, this is realised by designing a set of combinators (higherorder reusable programs) for an application area, and by constr ..."
Abstract

Cited by 20 (3 self)
 Add to MetaCart
The powerful abstraction mechanisms of functional programming languages provide the means to develop domainspecific programming languages within the language itself. Typically, this is realised by designing a set of combinators (higherorder reusable programs) for an application area, and by constructing individual applications by combining and coordinating individual combinators. This paper is concerned with a successful example of such an embedded programming language, namely Fudgets, a library of combinators for building graphical user interfaces in the lazy functional language Haskell. The Fudget library has been used to build a number of substantial applications, including a web browser and a proof editor interface to a proof checker for constructive type theory. This paper develops a semantic theory for the nondeterministic stream processors that are at the heart of the Fudget concept. The interaction of two features of stream processors makes the development of such a semantic theory problematic: (i) the sharing of computation provided by the lazy evaluation mechanism of the underlying host language, and (ii) the addition of nondeterministic choice needed to handle the natural concurrency that reactive applications entail We demonstrate that this combination of features in a higherorder functional language can be tamed to provide a tractable semantic theory and induction principles suitable for reasoning about contextual equivalence of Fudgets.
Topology, Domain Theory and Theoretical Computer Science
, 1997
"... In this paper, we survey the use of ordertheoretic topology in theoretical computer science, with an emphasis on applications of domain theory. Our focus is on the uses of ordertheoretic topology in programming language semantics, and on problems of potential interest to topologists that stem from ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
In this paper, we survey the use of ordertheoretic topology in theoretical computer science, with an emphasis on applications of domain theory. Our focus is on the uses of ordertheoretic topology in programming language semantics, and on problems of potential interest to topologists that stem from concerns that semantics generates. Keywords: Domain theory, Scott topology, power domains, untyped lambda calculus Subject Classification: 06B35,06F30,18B30,68N15,68Q55 1 Introduction Topology has proved to be an essential tool for certain aspects of theoretical computer science. Conversely, the problems that arise in the computational setting have provided new and interesting stimuli for topology. These problems also have increased the interaction between topology and related areas of mathematics such as order theory and topological algebra. In this paper, we outline some of these interactions between topology and theoretical computer science, focusing on those aspects that have been mo...
A Fully Abstract Semantics for a HigherOrder Functional Language With Nondeterministic Computation
, 1994
"... . This paper is about the relationship between the theory of monadic types and the practice of concurrent functional programming. We present a typed functional programming language CMML, with a type system based on Moggi's monadic metalanguage, and concurrency based on Reppy's Concurrent ML. We pre ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
. This paper is about the relationship between the theory of monadic types and the practice of concurrent functional programming. We present a typed functional programming language CMML, with a type system based on Moggi's monadic metalanguage, and concurrency based on Reppy's Concurrent ML. We present an operational and denotational semantics for the language, and show that the denotational semantics is fully abstract for maytesting. We show that a fragment of CML can be translated into CMML, and that the translation is correct up to weak bisimulation. Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Mathematical preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Categories and monads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Partial orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
tauangelic choice: An operator to reduce irrelevant internal activity in process algebra
"... The øangelic choice is an operator that captures the behaviour of the external choice of CSP in a branching time setting. The idea of the øangelic choice is to delay any choice until an observable action happens. In this way, this new operator avoids preemption introduced by internal actions (ø ac ..."
Abstract
 Add to MetaCart
The øangelic choice is an operator that captures the behaviour of the external choice of CSP in a branching time setting. The idea of the øangelic choice is to delay any choice until an observable action happens. In this way, this new operator avoids preemption introduced by internal actions (ø actions). It is studied in theories with abstraction, more precisely, branching bisimulation and øbisimulation. In addition, an ilustrative example of application is given. Keywords: theory of concurrency, semantics of reactive systems, process algebra, nondeterminism, specification and verification methodologies 1 Introduction Process algebras [BW90] aim to deal with Semantic of Reactive Systems [Pnu85]. These systems, whose classical examples are industrial control systems, drivers of computer networks, components of operating systems or protocols of comunication, are mainly characterized by the fact that they can be described as maintaining an interaction with their environment. It is no...
tauangelic choice for process algebra (Revised version)
"... The øangelic choice is an operator that captures the behaviour of the external choice of CSP in a branching time setting. The idea of the øangelic choice is to delay any choice until an observable action happens. In this way, this new operator avoids preemption introduced by internal actions (ø ac ..."
Abstract
 Add to MetaCart
The øangelic choice is an operator that captures the behaviour of the external choice of CSP in a branching time setting. The idea of the øangelic choice is to delay any choice until an observable action happens. In this way, this new operator avoids preemption introduced by internal actions (ø actions). It is studied in theories with abstraction, more precisely, branching bisimulation and øbisimulation and failure semantics. In addition, an ilustrative example of application is given. Keywords: theory of concurrency, semantics of reactive systems, process algebra, nondeterminism, specification and verification methodologies 1 Introduction The aim of this article is to introduce a new choice operator for process algebras [BW90] in order to deal with preemptive contexts. This operator is called øangelic choice and denoted by 2. The øangelic choice is strongly based in the external choice of CSP [BHR84, Hoa85] which was presented in a failure model. I showed in [D'A94] that extern...
RSP: A Language Supporting Synchronization Using Rendezvous
"... A language based on uninterpreted atomic actions and supporting angelic nondeterminism and parallel composition is studied. The language includes also a version of the rendezvous protocol for synchronization between processes. An operational semantics and related adequate and fully abstract denotati ..."
Abstract
 Add to MetaCart
A language based on uninterpreted atomic actions and supporting angelic nondeterminism and parallel composition is studied. The language includes also a version of the rendezvous protocol for synchronization between processes. An operational semantics and related adequate and fully abstract denotational semantics for the language are presented. In fact, it is shown that the operational semantics and the denotational semantics for this language are isomorphic, so that the operational semantics is compositional. The operational model is given by a transition system which is composed of two sets of rules, rewrite rules and transition rules. The rewrite rules for the language are syntactic program transformations designed to "percolate to the top" the next atomic action or rendezvous to be performed by a process. The use of a rewrite rule does not correspond to an observable step of computation, whereas the use of a transition rule does. We show that the rewrite rules are strongl...