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, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!husc6!mailrus!ncar!gatech!hubcap!billwolf From: billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,) Newsgroups: comp.lang.ada Subject: Re: Procedural variables, abstraction mechanisms, ADTs Message-ID: <3987@hubcap.UUCP> Date: 28 Dec 88 06:30:57 GMT References: <5696@medusa.cs.purdue.edu> Sender: news@hubcap.UUCP Reply-To: wtwolfe@hubcap.clemson.edu List-Id: >From article <5696@medusa.cs.purdue.edu>, by rjh@cs.purdue.edu (Bob Hathaway): > > For yet another Ada 9X extension, I propose procedural variables. This proposal has been given detailed consideration in Chapter 4 of "Abstraction Mechanisms and Language Design", an ACM Distinguished Dissertation by Paul N. Hilfinger. Hilfinger was a member of the Ada design team (see the Foreword in your LRM), and Chapter 4 is concerned with ways in which the abstraction mechanisms in current Ada can be strengthened even further. It's published in book form by the MIT Press, and should be available in the Purdue library. Another book I would strongly recommend to anyone interested in abstraction and programming languages is "Concurrency and Programming Languages", by David Harland. Harland spends 2/3 of the book discussing *abstraction* and programming languages, and eventually does get around to actually discussing concurrency in Chapter 3. Harland drives home the point that the default must be to maximize expressivity, and the burden of proof must fall upon those who argue that certain forms of abstraction must not be permitted. Although I believe that such an argument can be made successfully in certain cases, whereas Harland apparently does not, the book is nevertheless a very powerful argument in favor of "unfettered abstraction", and it will certainly make you think. Harland also takes on Lisp and the functional programming languages; his comments are very terse, and quite devastating. This book is relatively small, but its intellectual content is tremendous. It's definitely a book you'll want to reserve several weekends for. For a more practical look at abstract data types, Grady Booch's "Software Components with Ada" is a classic. I also like Booch's definition of object-oriented programming, which essentially states that OOP is the practice of applying ADTs in a sensible manner. Bill Wolfe wtwolfe@hubcap.clemson.edu