[comp.specification] Formal specifications of Pascal

arie@cwi.nl (Arie v. Deursen) (10/11/90)

Hello,

I am looking for literature concerning formal specifications for the static
semantics of Pascal. The static semantics of a strongly typed language like
Pascal, mainly covers, of course, its type checking rules.
I am very interested in formal specifications for the type check rules
for Pascal.

I already have studied the ISO standard (ISO 7185): natural language, not very
formal mathematically spoken,
and I have looked at the attributed grammar definition of the GAG system, by
Uwe Kastens c.s. (LNiCS 141).

I would appreciate any help,
   thanks in advance,
	Arie



Arie van Deursen	   Centrum voor Wiskunde en Informatica (CWI)
(arie@cwi.nl)		   P.O. Box 4079, 1009 AB Amsterdam, The Netherlands

sean@castle.ed.ac.uk (S Matthews) (10/12/90)

arie@cwi.nl (Arie v. Deursen) writes:
es

>Hello,

>I am looking for literature concerning formal specifications for the static
>semantics of Pascal. The static semantics of a strongly typed language like
>Pascal, mainly covers, of course, its type checking rules.
>I am very interested in formal specifications for the type check rules
>for Pascal.

>Arie van Deursen	   Centrum voor Wiskunde en Informatica (CWI)
>(arie@cwi.nl)		   P.O. Box 4079, 1009 AB Amsterdam, The Netherlands

In the book by C. B. Jones and D. Bjorner published in Prentice Hall
International there are are a large number of case studies, one of which
is a formal semantics of Pascal written in (an old version of ) VDM.
It gives the whole semantics though.

It is big and ugly, especially compared to the definition of Algol-60
which is also given.  A good argument against at least parts of
Pascal.

Another place to look for references would be Mike Gordon's book
by the same publisher.

Sean Matthews

cliff@cs.man.ac.uk (Cliff Jones) (10/18/90)

You ask for a (static) semantics of Pascal. This is covered in the
Andrews/Henhapl chapter in:


@book{BjornerJones82,
	author =	"D. Bj{\o}rner and C.B. Jones",
	year =		"1982",
	publisher =	"Prentice Hall International",
	title =		"Formal Specification and Software Development",
	note = 		"501 pages"
}

cliff jones

cliff@cs.man.ac.uk (Cliff Jones) (10/25/90)

In article <6698@castle.ed.ac.uk> sean@castle.ed.ac.uk (S Matthews) writes:
>arie@cwi.nl (Arie v. Deursen) writes:
...
>In the book by C. B. Jones and D. Bjorner published in Prentice Hall
>International there are are a large number of case studies, one of which
>is a formal semantics of Pascal written in (an old version of ) VDM.
>It gives the whole semantics though.
>
>It is big and ugly, especially compared to the definition of Algol-60
>which is also given.  A good argument against at least parts of
>Pascal.

It is interesting to look at this comparison (I'm fairly sure that the
fact that *both* definitions are in VDM ("old version thereof") does
not influence the comparison).

The context conditions (static semantics) is likely to be bigger just
because Pascal has a "richer" type structure than ALGOL60. I think
that most people would prefer a language to records with one without;
I hope most people would be happier if the types were checked statically.

The size of the (dynamic) semantics is more worrying. I talked a lot
to Derek Andrews when he was trying to work from the ALGOL definition
towards that for Pascal. Several times it was *very tempting* to "clean
up" the language and I argued that Pascal should be described "warts
and all". One (bad) example that I remember was the way that Pascal
permits variant records *and* allows untagged VRs to be passed by
location. The *combination* of these features adds to the size and
"ugliness" of the definition.

I guess my reason for going through this is to hammer home the point
(as put well in - for example - Schmidt's book) that formal
models/descriptions should be constructed as a language is designed
*not* as post facto exercises.

cliff jones