From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!husc6!think!ames!ucla-cs!zen!ucbvax!decvax!decwrl!labrea!glacier!jbn From: jbn@glacier.STANFORD.EDU (John B. Nagle) Newsgroups: comp.lang.ada,comp.lang.misc,comp.ai Subject: Re: Software Reuse -- do we really know what it is ? (long) Message-ID: <17113@glacier.STANFORD.EDU> Date: Sat, 4-Jul-87 17:19:48 EDT Article-I.D.: glacier.17113 Posted: Sat Jul 4 17:19:48 1987 Date-Received: Sun, 5-Jul-87 01:29:09 EDT References: <4661@utah-cs.UUCP> <668@titan.camcon.co.uk> Reply-To: jbn@glacier.UUCP (John B. Nagle) Organization: Stanford University Xref: mnetor comp.lang.ada:426 comp.lang.misc:502 comp.ai:620 List-Id: The trouble with this idea is that we have no good way to express algorithms "abstractly". Much effort was put into attempting to do so in the late 1970s, when it looked as if program verification was going to work. We know now that algebraic specifications (of the Parnas/SRI type) are only marginally shorter than the programs they specify, and much less readable. Mechanical verification that programs match formal specifications turned out not to be particularly useful for this reason. (It is, however, quite possible; a few working systems have been constructed, including one by myself and several others described in ACM POPL 83). We will have an acceptable notation for algorithms when each algorithm in Knuth's "Art of Computer Programming" is available in machineable form and can be used without manual modification for most applications for which the algorithm is applicable. As an exercise for the reader, try writing a few of Knuth's algorithms as Ada generics and make them available to others, and find out if they can use them without modifying the source text of the generics. In practice, there now is a modest industry in reusable software components; see the ads in any issue of Computer Language. Worth noting is that most of these components are in C. John Nagle