MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Erratic Fudgets: A semantic theory for an embedded coordination language (1999) [15 citations — 4 self]

Download:
Download as a PDF | Download as a PS
by Andrew Moran, David S, Magnus Carlsson
Sci. Comput. Program
http://www.cs.chalmers.se/~dave/papers/erratic-fudgets-extended.ps.gz
Add To MetaCart

Abstract:

Abstract. The powerful abstraction mechanisms of functional programming languages provide the means to develop domain-specific programming languages within the language itself. Typically, this is realised by designing a set of combinators (higher-order 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 non-deterministic 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 non-deterministic choice needed to handle the natural concurrency that reactive applications entail. We demonstrate that this combination of features in a higher-order functional language can be tamed to provide a tractable semantic theory and induction principles suitable for reasoning about contextual equivalence of Fudgets.

Citations

216 CML: A Higher-order Concurrent Language – Reppy - 1991
168 A foundation for actor computation – Agha, Smith, et al. - 1997
168 A powerdomain construction – Plotkin - 1976
155 The call-by-need lambda calculus – Ariola, Felleisen, et al. - 1995
148 A natural semantics for lazy evaluation – Launchbury - 1993
89 Equivalence in functional languages with effects – Mason, Talcott - 1991
72 A transformation-based optimiser for Haskell – Jones, Santos - 1998
67 Power domains – Smyth - 1978
60 An overview of Manifold and its implementation. Concurrency: Practice and Experience – Arbab, Herman, et al. - 1993
55 Powerdomains and predicate transformers: a topological view – Smyth - 1983
48 Deriving a Lazy Abstract Machine – Sestoft - 1997
47 Let-floating: moving bindings to give faster programs – Jones, Partain, et al. - 1996
38 A na"ive time analysis and its theory of cost equivalence – Sands - 1995
35 Non-determinism in functional languages – Sndergaard, Sestoft - 1992
31 The Chemical Abstract Machine, Theoretical Computer Science 96 – Berry, Boudol - 1992
30 Composing Haggis – Finne, Jones - 1995
28 Improvement in a lazy context: an operational theory for call-by-need – Moran, Sands - 1999
25 Fudgets - Purely Functional Processes with applications to Graphical User Interfaces – Carlsson, Hallgren - 1998
24 A theory for nondeterminism, parallelism, communication and concurrency – Broy - 1986
23 Nondeterministic Call by Need is Neither Lazy Nor by Name – Clinger - 1982
20 Relational Reasoning about Functions and Nondeterminism – Lassen - 1998
15 Some notes on inductive and co-inductive techniques in the semantics of functional programs – Pitts - 1994
15 A call by need lambda calculus – Ariola, Felleisen, et al. - 1995
12 Computing with contexts: A simple approach – Sands - 1998
11 Call-by-name, call-by-need, and McCarthy's Amb – Moran - 1998
10 Mccarthy's AMB cannot implement fair merge – Panangaden, Shanbhogue - 1988
10 Improvement theory and its applications – Sands - 1998
8 Equivalence in functional languages with eects – Mason, Talcott - 1991
6 A non-deterministic call-by-need lambda calculus – Kutzner, Schmidt-Schauß - 1998
4 Reppy, eXene – Gansner, H - 1991
3 Fully abstract models of the typed -calculus, Theoretical Computer Science 4 – Milner - 1977
2 Towards a semantic theory of CML (extended abstract – Ferreira, Hennessy - 1995
2 A theory of weak bisimulation for core – Ferreira, Hennessy, et al. - 1996
2 Formalising and Reasoning about Fudgets – Taylor - 1998
1 An operational theory for McCarthy's Amb – Lassen, Moran - 1998
1 From CML to its process algebra, Theoretical Computer Science 155 – Nielson, Nielson - 1996
1 The Haskell Report, Version 1.4 – Peterson, Hammond - 1997
1 Non-determinism in functional languages, The Computer Journal 35 – Sndergaard, Sestoft - 1992
1 The call-by-need lambda calculus, Journal of Functional Programming 7 – Ariola, Felleisen - 1997
1 A theory for Core Fudgets – Taylor - 1998
1 Unique point induction for McCarthy's Amb – Lassen, Moran - 1999