Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site wdl1.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!vax135!cornell!uw-beaver!tektronix!hplabs!hpda!fortune!wdl1!jbn
From: jbn@wdl1.UUCP
Newsgroups: net.ai
Subject: Re: Program Specification Languages
Message-ID: <638@wdl1.UUCP>
Date: Thu, 22-Aug-85 20:17:28 EDT
Article-I.D.: wdl1.638
Posted: Thu Aug 22 20:17:28 1985
Date-Received: Sun, 25-Aug-85 13:11:51 EDT
Sender: notes@wdl1.UUCP
Organization: Ford Aerospace, Western Development Laboratories
Lines: 29
Nf-ID: #R:gitpyr:-64400:wdl1:1100019:000:1699
Nf-From: wdl1!jbn    Aug 14 12:43:00 1985


There have been many attempts at formal specification languages.  The idea
seems to have originated with Dave Parnas (presently at U. of N. Carolina at
Chapel Hill) some years ago.  There is a whole methodology out of SRI
International called the Hierarchical Development Methodology, with the
specification languages SPECIAL (now obsolete) and ORDINARY (unfinished).
Most of the SRI work wasn't of very high quality.  Don Good's Gypsy project
at the University of Texas is the most successful system to date.

All of these systems belong to the family of algebraic specification languages,
and all suffer from a common problem; specifications of non-trivial systems
tend to be large and turgid.  In fact, they tend to look a lot like programs.
The idea that a tiny specification can exactly specify the behavior of a
large program seems not to work.  For trivial examples, and for some special
cases (sorting, for example) algebraic specifications seem very promising.
But the concept doesn't scale up well.

I used to do work in the verification area, and verification that code matches
specifications, while painfully difficult, is quite possible.  But it doesn't
seem to be too useful.  We need a breakthrough on the specification front.
Some people at the Kestrel Institute have been talking about a natural language
front end to a specification system, but this is a dumb idea; large formal 
specifications in natural languages aren't particularly comprehensible either;
take a look at what are called ``B-5 specifications'' for military software.
I've heard that Kestrel has dropped this idea and is now working on graphical
specifications, which may be a useful direction.

					John Nagle