Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site cstvax.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!unc!mcnc!decvax!genrad!mit-eddie!think!harvard!seismo!mcvax!ukc!cstvax!os
From: os@cstvax.UUCP (Oliver Schoett)
Newsgroups: net.ai
Subject: Re: Re: Program Specification Languages
Message-ID: <354@cstvax.UUCP>
Date: Mon, 30-Sep-85 14:04:10 EDT
Article-I.D.: cstvax.354
Posted: Mon Sep 30 14:04:10 1985
Date-Received: Mon, 30-Sep-85 02:06:31 EDT
References: <638@wdl1.UUCP> <629@mmintl.UUCP> <328@chalmers.UUCP> <255@yetti.UUCP>
Reply-To: os@cstvax.UUCP (Oliver Schoett)
Organization: Comp. Sc., Edinburgh Univ., Scotland
Lines: 34

In article <255@yetti.UUCP> peter@yetti.UUCP (Peter H. Roosen-Runge) writes:

> In a logic-programming environment, there is no reason why
>	sqrt(X,N) if N > 0 and product(N,N,X)
> cannot evaluate N given a value for X, assuming of course that product(X,Y,Z)
> can be so specified that its implementation terminates when only Z is
> instantiated, or if lazy evaluation is available that an appropriate stream
> of bindings for X and Y is generated.

To say "... so specified that its implementation terminates ..." is to fuse the
notions of specification and implementation.  Obviously, then, there is no
clear distinction left!

The purpose of a specification is to characterize the correct implementations.
Hence specifications are equivalent iff they admit the same implementations; to
distinguish "terminating" and "nonterminating" specifications does not make
sense (it's like distinguishing specifications written in black and blue).  If
you write a specification with operational concerns in mind (termination or
efficiency), as you have to in languages such as PROLOG, you are programming.

For example, it is misleading to claim that "logic programming notations allow
to execute specifications" (Roosen-Runge doesn't do this in his article!)---the
writing of "logic programs" is programming.  The advantage of such programs
over conventional ones might be that they can more easily be read as
specifications, i.e., that it might be easier to verify that they produce
correct results (when they do!).
-- 
Oliver Schoett

UUCP:	... mcvax!ukc!{hwcs,kcl-cs,ucl-cs,edcaad}!cstvax!os
ARPA:	os%cstvax@ucl-cs.arpa
tel:	+44 31 667 1081 ext. 2815
mail:	Department of Computer Science, University of Edinburgh, The King's
	Buildings (JCMB), Mayfield Road, Edinburgh EH9 3JZ, Great Britain