From: pdm@daimi.aau.dk (Peter D. Mosses)
Subject: Re: Semantic definition style
Summary: Re-post of references for action semantics
Keywords: structural operational semantics, denotational semantics,
	nondeterminism, action semantics, bibliography, FTP
Reply-To: pdm@daimi.aau.dk (Peter D. Mosses)
Organization: DAIMI: Computer Science Department, Aarhus University, Denmark
Date: Mon, 23 Nov 92 06:09:17 GMT

In article <1992Nov20.085655.8721@daimi.aau.dk>, I wrote:
> ... namely action semantics (references provided in an earlier
>message - mail me if you missed that one).

Apparently quite a few of you missed the earlier message (and I never
saw any responses to it).  Here it is again, together with another
earlier message that indicated how to FTP the action semantics
bibliography:

Newsgroups: comp.specification
From: pdm@daimi.aau.dk (Peter D. Mosses)
Subject: Re: Semantic definition style
Summary: Action semantics is best :-)
Keywords: action semantics, action notation, denotational semantics,
	operational semantics

In article <BEVAN.92Nov7140134@hippo.cs.man.ac.uk>, bevan@cs (Stephen J Bevan) writes:
>In article <DMASON.92Nov5131527@plg.uwaterloo.ca> dmason@uwaterloo.ca (Dave Mason) writes:
>   In article <720801988.16035@minster.york.ac.uk> song@minster.york.ac.uk writes:
>   > I am aware that there are four different styles to define semantics.
>   > 	operational
>   > 	denotational
>   > 	algebraic 
>   > 	axiomatic
>
>   There is also action semantics, as describes by Mosses.  In many ways,
>   action semantics is better than the others, but it's also newer.
>
>I don't want to start a "my spec. system better than your spec.
>system" but would you (or anybody else) care to expand on the above?
>
>My only exposure to action semantics is via a couple of tech reports
>and David Watt's book [1].  From this I get the impression that great
>emphasis is put on the readability aspect of the definition.  However,
>I'm at a loss to see the difference between the action semantic
>definitions given and an equivalent denotational/operational
>definition that uses equally well chosen English words instead of
>Greek symbols[2].  There must be more to it than just notation, so
>could somebody please enlighten me?
>
>bevan

Sorry, I was away and missed Dave Mason's message.  So let me react
just to the above, which is a crucial point.  I'll try to be brief.

First of all, please note that a complete reference manual and text
book for action semantics (AS) has recently been published [3].  Not
only does the book provide the formal foundations of the AS framework,
but also it demonstrates the modularity of AS descriptions: when one
adds new language features, one *never* has to make the kind of
large-scale reformulation of previous semantic equations that is known
from denotational semantics (DS).

Now to the point raised above.  In fact one *can* use action notation
(AN) as an auxiliary notation in DS, defining the action primitives
and combinators as higher-order functions on domains.  See [4] for an
example.  Then the semantic equations look just the same as with AS!
When adding new language features, one now avoids changes to the
semantic equations themselves; but it may be necessary to change the
definitions of the auxiliary notation, of course.  AS avoids the need
for changes altogether by having a fixed (operational) semantics for
the entire AN.

A more technical problem with using AN in DS is to get a model (of the
full AN) that satisfies all the desired laws: actions involve
unbounded nondeterminism and interleaving, and it seems impossible to
get fully abstract models for them, even though their operational
semantics is quite straightforward.

Regarding operational semantics (OS): the usual structural approach
involves the syntax of the described language as components of
configurations.  Repetitious inference rules determine, say,
left-to-right expression evaluation in various constructs.  With AS,
one uses a single combinator of AN (`A1 and then A2') to express the
concept of sequential evaluation; the inference rules for *its* OS
have been given, once-and-for-all.  The AS semantic equations can be
regarded as a compiler into AN, so the OS of AN (given in [3]) does
indeed allow an AS decsription to be seen as an OS - but not as one
that is structural in the usual sense.

Finally, let me point out that David Watt and I spent many years on
the design of our standard AN.  The starting point was a direct
representation of the fundamental concepts of programming languages as
developed by Christopher Strachey (in DS, these concepts get `coded'
as particular patterns of function composition).  We also took account
of desirable algebraic laws, e.g., all the binary combinators of AN
are associative, and have units.  However, our experimentation with AS
descriptions of realistic programming languages has substantially
influenced AN.  By having a *standard* AN, we facilitate large-scale
reuse of semantic descriptions.  The use of English words rather than
Greek (and mathematical) symbols increases readability - also
writability! - but is not essential for obtaining the other pragmatic
advantages of the AS framework.

>[1] 
>@book
>{ Watt91
>, author=    {David A. Watt}
>, title=     {Programming Language Syntax and Semantics}
>, publisher= {Prentice Hall International}
>, year=      {1991}
>}
>
>[2] Use monads if you want to hide "state" and/or "enviroments" in a
>    similar fashion to the facets in an action semantic definition :-

... but it isn't so easy to combine various monads without
reformulating semantic equations!  Are there any larger semantic
descriptions based on monads?

>@inproceedings
>{ Moggi89
>, author=    {E. Moggi}
>, title=     {Computational lambda-calculus and monads}
>, booktitle= {IEEE International Symposium on Logic In Computer Science}
>, year=      {1989}
>}
>
>@techreport
>{ Wadler92
>, author=      {Philip Wadler}
>, title=       {Comprehending Monads}
>, institution= {Department of Computing Science, University of Glasgow}
>, address=     {Glasgow, UK, G12 8QQ}
>, year=        {1992}
>}

[3]
@book{Mosses92as,
	title = {Action Semantics},
	publisher = "Cambridge University Press",
	year = {1992},
	author = {Peter D. Mosses},
	series = {Cambridge Tracts in Theoretical Computer Science},
	number = {26}
}

[4]
@incollection{Mosses91pids,
	author = {Peter D. Mosses},
	title = {A Practical Introduction to Denotational Semantics},
	booktitle = {Formal Description of Programming Concepts},
	year = {1991},
	publisher = "Springer-Verlag",
	editor = {Ehrich J. Neuhold and Manfred Paul},
	pages = {1--49},
	series = {{IFIP} State-of-the-Art Reports}
}


From: pdm@daimi.aau.dk (Peter D. Mosses)
Subject: Re: Semantic definition style
Summary: FTP-able bibliography for action semantics
Keywords: action semantics, bibliography, ftp

In article <MOREAUX.92Nov9161246@litsun22.epfl.ch>, moreaux@litsun22 (Michel Moreaux) writes:
>Here is another reference:

>@INPROCEEDINGS  { M:345,
>     AUTHOR    = "Mosses, Peter D.",
>     TITLE     = "Unified Algebras and Action Semantics",
>...
>     YEAR      = "1989",
> ...
>_Michel Moreaux

Thanks.  That was, however, a somewhat tentative paper, exploring the
use of unified algebras (an unorthodox order-sorted specification
framework, allowing sort union and other operations on sorts) in
action semantic descriptions.  The `official' version of the action
semantics framework, which David Watt and I describe in our respective
books, doesn't rely quite so much on the novel features of unified
algebras.  (For those familiar with the referenced paper: the
combinator for binary choice `A1 or A2' now returns an *individual*
action, rather than the sort union `A1 | A2'.  Thus the nondeterminism
only appears during action performance, not in the actions per se.
However, primitive actions can still be applied to sorts of data,
e.g., `choose a number'.)

Chapter 19 of my book provides an almost up-to-date bibliography of
reports on action semantics.  The current version of the bibliography
can be retrieved by anonymous FTP from ftp.daimi.aau.dk in the
directory pub/action/bibliography.  The README file says:

[This is ftp.daimi.aau.dk:pub/action/bibliography/README]

The bibliography directory contains sources for the Action Semantics
bibliography, as follows:

The file abstract.bib contains all the abstracts from Chapter 19 of
the AS book, together with the abstracts of some recent reports.

The file action.bib contains the same as abstract.bib, except that the
abstracts are omitted.

The files new-abstract.bib and new-action.bib consist of just the
recent entries in abstract.bib and action.bib.

To print the file *.bib, use LaTeX, then BibTeX, then LaTeX again on
the corresponding *.tex file.  N.B.  The ones with abstracts use my
nonstandard bibliography style file alpha-abstract.bst, which allows
longer strings than the standard styles.  (The file old-abstract.bst
could be used instead - it uses the citation keys as labels, like the
widely available abstract.bst.)

The *.dvi files are also available, for those who don't need the
sources.

Finally, the file all.tar.Z contains a compressed tar archive of all
the files.

...

-- 
Peter D. Mosses | Computer Science Department | <pdmosses@daimi.aau.dk> 
~~~~~~~~~~~~~~~ | Aarhus University           | Phone: +45 86 12 71 88 
                | Ny Munkegade, Building 540  | Fax:   +45 86 13 57 25 
                | DK-8000 Aarhus C,  Denmark  | Telex: 64767 aausci dk
Newsgroups: comp.specification