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