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 Brought to you by Super Global Mega Corp .com