Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!cica!gatech!hubcap!billwolf%hazel.cs.clemson.edu
From: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 )
Newsgroups: comp.sw.components
Subject: Re: List ADT example
Message-ID: <6624@hubcap.clemson.edu>
Date: 28 Sep 89 19:12:33 GMT
References: <917@scaup.cl.cam.ac.uk>
Reply-To: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu
Lines: 44

From scc@cl.cam.ac.uk (Stephen Crawley):
> if you insist that I use a different generic list ADT 
> (say POINTER_LIST), please explain how it does storage management 
> without pushing the tricky part (in particular the decision about when
> reference counts should be incremented or decremented) back to application
> code.  

    This is the price you pay for wanting to store references instead 
    of objects.  An object can only be in one place at a time.

> But my point is that [auto-destruct] doesn't exist NOW.  Given that it
> is being CONSIDERED for Ada 9X, it is a safe bet that it won't be 
> available in production Ada systems for at least 3-5 years.  What
> do we do to till then?  

    Ada is the result of a language ENGINEERING process.  There was
    a deliberate decision that the definition of the language would
    be held stable for ten years at a time.  This permits certain
    economic assumptions to be made, which was judged to be more
    important than satisfying those who think that new versions of
    a language should be generated every six months.  This is a
    PRODUCTION language, not a RESEARCH language.  It offers a lot
    of advantages (portability, compiler validation, infrastructure)
    not present with other languages, in addition to a very high level
    of support for good software engineering practices.  

    If you really need auto-destruct right away, use a preprocessor.
    This same technique is already being used for inheritance and
    dynamic binding.  And while you're at it, here's an idea which
    was described by Paul Hilfinger (a member of the Ada design team)
    in his ACM Distinguished Dissertation: literal recognition should
    also be specifiable such that a compiler can be made to recognize
    the literals of any type for which a literal representation 
    recognition procedure has been defined during the compilation
    process.  This is another idea which did not emerge until the
    Ada design had already been frozen.

    We are nearing the end of the ten-year period of definitional
    stability, and obviously this is when the number of new ideas
    which have not yet been incorporated is at its largest.  
    

    Bill Wolfe, wtwolfe@hubcap.clemson.edu