## Graph-based Operational Semantics of a Lazy Functional Language (0)

Venue: | Term Graph Rewriting: Theory and Practice, chapter 22 |

Citations: | 1 - 1 self |

### BibTeX

@INPROCEEDINGS{Rose_graph-basedoperational,

author = {Kristoffer H. Rose and Kristoffer H. Rose},

title = {Graph-based Operational Semantics of a Lazy Functional Language},

booktitle = {Term Graph Rewriting: Theory and Practice, chapter 22},

year = {},

pages = {303--316},

publisher = {John Wiley}

}

### OpenURL

### Abstract

Machine [Car83], the G-machine [Joh84, BPJR88], Clean [BvEvLP87, KSvEP91], and DACTL [Ken88, GKS89]. All of these can be perceived as notations for algorithms that describe how graphs may be used to model the evaluation of the implemented language. Such notations have the advantage that they are directly executable. However, they are often not very readable since all the details of the implementation have to be present in the specification. On the other hand, the idea has also been used in attempts to build models of functional languages and to prove properties of such models directly. Again starting from [Wad71] such attempts are naturally focused on models of the -calculus---a 2 We will use the traditional word "redex" (reducible expression) rather than some abbreviation of "reducible subgraph" even though we will always refer to the latter. GRAPH-BASED OPERATIONAL SEMANTICS OF A LAZY FUNCTIONAL LANGUAGE 239 rather large are of research, so we will just mention [Sta78] and [Lam90...

### Citations

1311 | Introduction to Functional Programming
- Bird, Wadler
- 1988
(Show Context)
Citation Context ...ompactness convenient for users, by using it to specify BAWL featuring the operational aspects of the language used in the standard text book Introduction to Functional Programming by Bird and Wadler =-=[BW88]-=-. But first we summarize BAWL and explain how it is susceptible to TGR; then we briefly sketch the background of this work before presenting an overview of the remainder of the chapter. BAWL---a gener... |

1286 | A structural approach to operational semantics - Plotkin - 1981 |

536 |
The Implementation of Functional Programming Languages
- JONES, L
- 1987
(Show Context)
Citation Context ...can in fact be expressed in it may find the translation in figure 22.2 (a thorough explanation of the kind of translations we have used is given 236 ROSE in chapter 3, 5, and 7 of Peyton Jones's book =-=[PJ87]-=-). The only variation is that we compile guards and tests into pattern matching rather than vice versa (the details may be found in [Ros92b, Ros91]). sort [ ] = [ ] where sort ((:) x xs) = ((++) (sort... |

122 | E#cient compilation of lazy evaluation - Johnsson - 1984 |

119 | An algorithm for optimal lambda calculus reduction, in
- Lamping
- 1990
(Show Context)
Citation Context ...ducible subgraph" even though we will always refer to the latter. GRAPH-BASED OPERATIONAL SEMANTICS OF A LAZY FUNCTIONAL LANGUAGE 239 rather large are of research, so we will just mention [Sta78]=-= and [Lam90] as inspir-=-ational sources. Overview In section 22.2 we summarize the necessary TGR concepts in a notation convenient for our use, and we present the "minimal lazy rewrite" theorem that will prove usef... |

111 |
Semantics and pragmatics of the lambda-calculus, D
- Wadsworth
- 1971
(Show Context)
Citation Context ... lazy functional languages using graphs---even though this is an obvious idea most authors seem to prefer using stores, environment frames, substitutions, etc. However, the idea has been around since =-=[Wad71]-=- who used it to implement the -calculus with acyclic sharing of common subterms. Modeling recursion by cyclic sharing was suggested for data by [Hoa75] and for functions by [Hug82]. This is also where... |

70 |
Notes on data structuring
- Hoare
- 1972
(Show Context)
Citation Context ...ns, etc. However, the idea has been around since [Wad71] who used it to implement the -calculus with acyclic sharing of common subterms. Modeling recursion by cyclic sharing was suggested for data by =-=[Hoa75] and -=-for functions by [Hug82]. This is also where the intuition of why graph reduction provides a useful model for lazy evaluation of functional languages is presented---"just keep all the subexpressi... |

34 |
Recursion equations as a programming language
- Turner
- 1982
(Show Context)
Citation Context ...or lists of numbers, as well as standard list notation, notably "list comprehensions", i.e., the [ \Gamma j \Gamma ] notation described in section 3.2 of [BW88] (originally called "ZF-e=-=xpressions" in [Tur82]). But we -=-will not be concerned with such details here. Instead we will follow tradition and specify BAWL by giving a "Core BAWL" subset that is sufficiently powerful that all BAWL programs may be tra... |

33 | The spineless G-machine - Bum, Jones, et al. - 1988 |

31 |
The functional abstract machine
- Cardelli
- 1983
(Show Context)
Citation Context ...lue only as needed"---although it had to some extent been folklore since [McC60] and has been used extensively in implementations of functional languages. Examples are the Functional Abstract Mac=-=hine [Car83]-=-, the G-machine [Joh84, BPJR88], Clean [BvEvLP87, KSvEP91], and DACTL [Ken88, GKS89]. All of these can be perceived as notations for algorithms that describe how graphs may be used to model the evalua... |

25 | Explicit Cyclic Substitutions - Rose |

12 | Implementing Term Rewrite Languages in DACTL - Kennaway - 1990 |

12 |
Recursive functions of symbolic expressions
- McCarthy
- 1960
(Show Context)
Citation Context ...lazy evaluation of functional languages is presented---"just keep all the subexpressions around, updating each to its proper value only as needed"---although it had to some extent been folkl=-=ore since [McC60]-=- and has been used extensively in implementations of functional languages. Examples are the Functional Abstract Machine [Car83], the G-machine [Joh84, BPJR88], Clean [BvEvLP87, KSvEP91], and DACTL [Ke... |

7 | Graph rewriting using the annotated functional strategy - Koopman, Smetsers, et al. - 1993 |

5 |
A graph-like lambda calculus for which leftmost-outermost reduction is optimal
- Staples
- 1978
(Show Context)
Citation Context ...ation of "reducible subgraph" even though we will always refer to the latter. GRAPH-BASED OPERATIONAL SEMANTICS OF A LAZY FUNCTIONAL LANGUAGE 239 rather large are of research, so we will jus=-=t mention [Sta78] and [Lam9-=-0] as inspirational sources. Overview In section 22.2 we summarize the necessary TGR concepts in a notation convenient for our use, and we present the "minimal lazy rewrite" theorem that wil... |

4 | Final Specification of Dactl - Glauert, Kennaway, et al. - 1988 |

4 |
Graph matching in operational semantics and typing
- Holm
- 1990
(Show Context)
Citation Context ...e = ? \Gamma!) corresponds to the rooted homomorphism on "open graphs" of [BvEG + 87] except that we include the "empty" ? nodes in the graph as actual nodes rather than leave them=-= out. We discuss in [Hol90b]-=- how our parametrization can be generalized to provide encoding of type systems. It is easy to see that such a match is always unique (proof in [Ros92b]). GRAPH-BASED OPERATIONAL SEMANTICS OF A LAZY F... |

3 | CLEANâ€”A language for functional graph rewriting - BRUS, EEKELEN, et al. - 1987 |

1 |
Graph Matching in Functional Language Specification and Implementation. skriftlig rapport 90-1-3
- Holm
- 1990
(Show Context)
Citation Context ...here has been very "top-down": we started this by considering the needs of high-level lazy functional languages. Nevertheless, we have done some experiments with implementation of the presen=-=ted ideas [Hol90a]-=- in the form of a graph reduction machine called MatchBoxes, and particularly coding the efficient match and rewrite algorithm as primitives in the machine seems to have some promise. Finally, this au... |

1 | Natural Semantics. Rapport 601 - Kahn - 1987 |

1 | Katholieke Universiteit Nijmegen. (available as Nijmegen - Plasmeijer, R - 1991 |

1 |
GOS---Graph Operational Semantics. Speciale 92-1-9
- Rose
- 1992
(Show Context)
Citation Context ...ult to express in most other formalisms. This is the primary motivation for GOS and the subject of this chapter. Background and related work This chapter grew out of the desire in the author's thesis =-=[Ros92b]-=- to describe the semantics of graph reduction in lazy functional languages using graphs---even though this is an obvious idea most authors seem to prefer using stores, environment frames, substitution... |