## Action Semantics Reasoning About Functional Programs (1996)

Venue: | Mathematical Structures in Computer Science |

Citations: | 5 - 2 self |

### BibTeX

@INPROCEEDINGS{Lassen96actionsemantics,

author = {S.B. Lassen},

title = {Action Semantics Reasoning About Functional Programs},

booktitle = {Mathematical Structures in Computer Science},

year = {1996},

pages = {557--589}

}

### OpenURL

### Abstract

syntax The algebraic definition of abstract syntax trees below can, more or less, be read as a BNF grammar. Emphatic brackets, [[: : : ]], indicate nodes in an abstract syntax tree. grammar: ffl Expression = Identifier "true" "false" [[ "" Identifier "." Expression ]] [[ Expression Expression ]] [[ "rec" Identifier "." Expression ]] [[ "if" Expression "then" Expression "else" Expression ]] . Action semantics reasoning about functional programs 3 ffl Identifier = [[ letter + ]] . 2.2. Semantic functions Action semantic descriptions are syntax-directed in the denotational style: compositional semantic functions map abstract syntax into meaning and are defined inductively by semantic equations. There is one universal semantic domain, namely action, the sort of actions. Actions are expressed in a notation that looks a little like informal English prose but, in fact, it is a completely formal combinator-based notation. The verbose notation should be suggestive of the meaning of th...

### Citations

743 | Notions of computation and monads
- Moggi
- 1991
(Show Context)
Citation Context ...alistic programming languages. Some deficiencies with regard to modularity of denotational semantics are addressed by Moggi's monadic metalanguage which encapsulates different notions of computation (=-=Moggi, 1991-=-). Action semantics is an alternative framework with good pragmatic properties which derive from the design of action notation. It is a comparatively large notation and is effectively a superset of co... |

415 | Testing equivalences for processes
- Nicola, Hennessy
- 1984
(Show Context)
Citation Context ...st congruence which respects these observations. This definition is fairly robust with respect to the exact choice of observations. Contextual equivalence can also be viewed as a testing equivalence (=-=DeNicola and Hennessy, 1984-=-). A great variety of stronger equivalences have been studied in the literature, especially bisimulation relations for processes. But in our setting, we find it difficult to justify a stronger semanti... |

373 |
Types, abstraction, and parametric polymorphism
- Reynolds
- 1983
(Show Context)
Citation Context ...dn b R d 0 n . 5.2. Uniformity Now we are in a position to formalise the uniformity requirement of data operations with respect to abstractions. We adopt an approach akin to relational parametricity (=-=Reynolds, 1983-=-). Recall the grammar (1) for data terms from assumption 2 in Section 3.6.4, d ::= abstraction of A j DATA-OPn (d 1 : : : dn ) : Requirement 5.1. For every compatible relation R on actions and all dat... |

239 | The lazy lambda calculus
- Abramsky
- 1990
(Show Context)
Citation Context ...iption of a functional language. Our reasoning techniques are based on operational theory for functional programming languages and for process calculi. We apply the applicative bisimulation approach (=-=Abramsky, 1990-=-) to the combinator-based action notation. We combine (unbounded) nondeterminism and abstract data types with applicative bisimulation and present a co-inductive simulation proof method for contextual... |

153 |
action semantics
- Mosses, Watt, et al.
- 1993
(Show Context)
Citation Context ...theory is demonstrated by means of action semantic proofs of functional program equivalences. 1. Introduction Action semantics is a semantic description framework with very good pragmatic properties (=-=Mosses, 1992-=-; Mosses, 1996). It has been used to formalise a wide range of realistic programming languages, as demonstrated by complete descriptions of Pascal (Mosses and Watt, 1993), ANDF (Hansen and Toft, 1994)... |

123 |
Bisimilarity as a theory of functional programming
- Gordon
(Show Context)
Citation Context ...ences on actions and investigate their properties. Action semantics reasoning about functional programs 13 5.1. Compatible relations For every binary relation R on actions, its compatible refinement (=-=Gordon, 1995-=-b), b R, relates action terms with identical outermost syntactic constructor and immediate subterms pairwise related by R, as given by the rules: PRIM 0 b R PRIM 0 Y b R Y 0 PRIM 1 Y b R PRIM 1 Y 0 A ... |

105 |
Functional programming and Input/Output
- Gordon
- 1994
(Show Context)
Citation Context ...s. Strongly typed action semantics has also been used, especially in compiler generators, e.g. (��rb��k, 1994). It should be straightforward to construct typed variants of our theory in the st=-=yle of (Gordon, 1994-=-). Discussion. Most other work on denotational semantics operate with metalanguages based on lambda calculus which has a rich denotational and operational theory. However, they have been successfully ... |

97 | Equality in lazy computation systems
- Howe
- 1989
(Show Context)
Citation Context ... order to establish our main result, that simulation is sound with respect to the contextual preorders, we first show that the simulation preorders are precongruences. We apply Howe's general method (=-=Howe, 1989-=-) which has become a standard approach in connection with (bi)simulation for higher-orderlanguages. We borrow ideas from Ong's application of Howe's method to a mixed call-by-value / call-by-name nond... |

51 |
Uni algebras and institutions
- Mosses
- 1989
(Show Context)
Citation Context ...inally, I am grateful for the referees comments that helped me to improve the final version of the paper, especially the presentation of action semantics. Appendix A. Unified algebra Unified algebra (=-=Mosses, 1989-=-) is the algebraic specification framework normally used together with action semantics. We specify all entities, both syntax and data, in unified algebras. ThroughAction semantics reasoning about fun... |

33 | Theory and practice of action semantics
- Mosses
- 1996
(Show Context)
Citation Context ...nstrated by means of action semantic proofs of functional program equivalences. 1. Introduction Action semantics is a semantic description framework with very good pragmatic properties (Mosses, 1992; =-=Mosses, 1996-=-). It has been used to formalise a wide range of realistic programming languages, as demonstrated by complete descriptions of Pascal (Mosses and Watt, 1993), ANDF (Hansen and Toft, 1994), Standard ML ... |

27 | A tutorial on co-induction and functional programming
- Gordon
- 1994
(Show Context)
Citation Context ...ences on actions and investigate their properties. Action semantics reasoning about functional programs 13 5.1. Compatible relations For every binary relation R on actions, its compatible refinement (=-=Gordon, 1995-=-b), b R, relates action terms with identical outermost syntactic constructor and immediate subterms pairwise related by R, as given by the rules: PRIM 0 b R PRIM 0 Y b R Y 0 PRIM 1 Y b R PRIM 1 Y 0 A ... |

27 |
A basic abstract semantic algebra
- Mosses
- 1984
(Show Context)
Citation Context ...the task of developing its semantic theory challenging but we believe that the result will be informative and useful. Originally, actions were specified algebraically as "abstract semantic algebr=-=as" (Mosses, 1983-=-). In Section 6.4 we outlined how the operational theory for actions entails such algebraic action laws. It seems difficult to assess an algebraic semantics without the complementary operational forma... |

19 |
Non-determinism in a functional setting
- ONG
- 1993
(Show Context)
Citation Context ...92, C.4). Our MAY and MUST formulation takes inspiration from Ulidowski's copy+refusal testing for processes (Ulidowski, 1992) and Ong's applicative bisimulation for nondeterministic lambda calculus (=-=Ong, 1993). Let t-=-he MAY simulation preorder be the greatest relation, ! �� MAY , on unfold-closed actions satisfying: Whenever A ! �� MAY A 0 and i ` A + MAY d\Thetab, also i ` A 0 + MAY d 0 \Thetab 0 with d\T... |

19 | Equivalences on observable processes
- Ulidowski
- 1992
(Show Context)
Citation Context ... define simulation co-inductively, inspired by the bisimulation for actions in (Mosses, 1992, C.4). Our MAY and MUST formulation takes inspiration from Ulidowski's copy+refusal testing for processes (=-=Ulidowski, 1992) an-=-d Ong's applicative bisimulation for nondeterministic lambda calculus (Ong, 1993). Let the MAY simulation preorder be the greatest relation, ! �� MAY , on unfold-closed actions satisfying: Wheneve... |

18 | From operational to denotational semantics
- Smith
- 1992
(Show Context)
Citation Context ...tail with this material and we omit proofs. In (Lassen, 1995) we prove these results for a basic fragment of action notation. These proofs scale up when combined with ideas from Smith's CIU proof in (=-=Smith, 1992-=-).) 5.4. Finite restriction Our first context lemma says that it suffices to consider finite action contexts and @-substitutions in order to preorder actions. An action context, F , is called finite i... |

11 |
The formal specification of ANDF, An application of action semantics
- Hansen, Toft
- 1994
(Show Context)
Citation Context ...operties (Mosses, 1992; Mosses, 1996). It has been used to formalise a wide range of realistic programming languages, as demonstrated by complete descriptions of Pascal (Mosses and Watt, 1993), ANDF (=-=Hansen and Toft, 1994-=-), Standard ML (Watt, 1996) (in progress), most of Occam2 (Buhl, 1994), as well as numerous other procedural, object-oriented, and parallel languages. Moreover, a number of compiler generators have be... |

11 |
Concurrent Lambda Calculus and a General Precongruence Theorem for Applicative Bisimulations
- Ong
- 1992
(Show Context)
Citation Context ...approach in connection with (bi)simulation for higher-orderlanguages. We borrow ideas from Ong's application of Howe's method to a mixed call-by-value / call-by-name nondeterministic lambda calculus (=-=Ong, 1992-=-). Ong's applicative bisimulation resembles our MAY and MUST simulations. We extend this work to cover unbounded nondeterminism, dynamic bindings, and abstract data types. The simulation preorders are... |

9 | Action transformations in the ACTRESS compiler generator
- Moura, Watt
- 1994
(Show Context)
Citation Context ...ress), most of Occam2 (Buhl, 1994), as well as numerous other procedural, object-oriented, and parallel languages. Moreover, a number of compiler generators have been based on action semantics, e.g. (=-=Moura and Watt, 1994; ��-=-rb��k, 1994). A useful theory for reasoning about programs in action semantics has a wide practical scope. A strong action theory would offer techniques for reasoning about programs in any program... |

6 | The facets of action semantics: Some principles and applications
- Doh, Schmidt
(Show Context)
Citation Context ...mulation on reductions. Here we have studied untyped action semantics but it would be interesting to combine our work with the "soft types" provided by the facet notation in (Mosses, 1992); =-=see also (Doh and Schmidt, 1994). The f-=-acet notation makes it possible to formulate a richer algebra of action laws. Strongly typed action semantics has also been used, especially in compiler generators, e.g. (��rb��k, 1994). It sh... |

4 |
Action Semantics: A Tool for Developing Programming Languages
- Doh
- 1993
(Show Context)
Citation Context ...ch branch checks that the result is true, respectively false, and then evaluates the corresponding expression; otherwise the branch fails and the "or" combinator chooses the alternative bran=-=ch. (See (Doh, 1993-=-) for a more complete introduction to action semantics of functional languages.) 3. Action notation This section describes the functional/declarative subset of action notation and the underlying data ... |

4 | Basic Action Theory
- Lassen
- 1995
(Show Context)
Citation Context ... the specification language, called action notation. It is a comparatively large semantic metalanguage with notation for all the fundamental computational concepts found in programming languages. In (=-=Lassen, 1995-=-) we developed an action theory for a small control fragment (the basic facet) of action notation. Here we extend this work to a substantial part of action notation (the functional and declarative fac... |

4 | OASIS: An optimizing action-based compiler generator - ��rb��k - 1994 |

4 |
Inductive and co-inductive techniques in the semantics of functional programs. Course held at BRICS
- Pitts
- 1994
(Show Context)
Citation Context ...ave also studied an extension of our functional language with lazy lists. This has become the prototypical application for co-induction on higher-order programming languages, see (Gordon, 1995a) and (=-=Pitts, 1994-=-) for instructive examples. Via the language's action semantic description, Action semantics reasoning about functional programs 27 these examples can all be rephrased and solved at the level of actio... |

2 |
Communicative action semantics
- Buhl
- 1994
(Show Context)
Citation Context ...e of realistic programming languages, as demonstrated by complete descriptions of Pascal (Mosses and Watt, 1993), ANDF (Hansen and Toft, 1994), Standard ML (Watt, 1996) (in progress), most of Occam2 (=-=Buhl, 1994), as we-=-ll as numerous other procedural, object-oriented, and parallel languages. Moreover, a number of compiler generators have been based on action semantics, e.g. (Moura and Watt, 1994; ��rb��k, 19... |

1 |
Pascal action semantics, Version 0.6. ftp://ftp.brics.dk/pub/BRICS/Projects/AS/Papers/MossesWatt93DRAFT
- Mosses, Watt
- 1993
(Show Context)
Citation Context ...rk with very good pragmatic properties (Mosses, 1992; Mosses, 1996). It has been used to formalise a wide range of realistic programming languages, as demonstrated by complete descriptions of Pascal (=-=Mosses and Watt, 1993-=-), ANDF (Hansen and Toft, 1994), Standard ML (Watt, 1996) (in progress), most of Occam2 (Buhl, 1994), as well as numerous other procedural, object-oriented, and parallel languages. Moreover, a number ... |