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