comp.lang.ada
 help / color / mirror / Atom feed
From: billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,)
Subject: Re: Procedure types and dynamic binding
Date: 5 Jan 89 10:02:24 GMT	[thread overview]
Message-ID: <4018@hubcap.UUCP> (raw)
In-Reply-To: 5753@medusa.cs.purdue.edu

From article <5753@medusa.cs.purdue.edu>, by rjh@cs.purdue.edu (Bob Hathaway):
> Erland writes:
>>I have stated my view before: a language revision should not introduce 
>>major changes, but stick to an overview of details that needs refining,
>>like character representation. There is one exception, though: if someone
> 
> I disagree.  While it's not difficult to design new languages with powerful 
> constructs and methodologies it is difficult to get them standardized 
> and accepted.  Validated Ada compilers are available on almost every machine
> and extending Ada with more modern constructs will at least provide one 
> commonly available modern programming language, even if only for designing 
> better ones ;-)

   I have to agree with Bob.  Since old Ada and new Ada would be fairly
   similar, automatic translators would probably be highly effective
   should the need arise.  

>>comes up with a fully-fledged extension to give Ada dynamic binding to
>>make it a truly object-oriented language, I would whole-heartedily
>>support that proposal.
> 
> In "Concurrency and Programming Languages" by David Harland, as sited by
> Bill, dynamic and static binding are provided as a module option.  I think
> this is an excellent idea since most of the literature gives a mind set of 
> one type of binding or the other, with the obvious general solution being to
> provide both.  

    Um, hold on there.  I cited Harland primarily as an example of extreme
    steps which would provide maximum support for abstraction, and I support
    Harland's view that departures from the state of maximum expressiveness
    must bear the burden of proof, but I also noted that there are certain 
    situations in which I think a convincing case can be made in this
    direction.  Most languages, though, go much too far in their restriction
    of expressiveness, including Ada.  (Still, Ada is the best language 
    available, all things considered.) 

    As far as dynamic binding goes, I think there is a need to provide
    the ability to have a program edit (or generate) a piece of source
    code, compile that code (including any necessary recompilations),
    dump any necessary local knowledge for its successor to load in, 
    initiate its successor, and finally kill itself off, but I see no 
    need to go any farther than that.  Harland gives a rather eloquent
    statement of why systems must be self-modifying, and this argument
    is convincing.  But dynamic binding (as I understand the term) is
    "too changeable", like the uncontrolled change which occurs in some
    inheritance-oriented languages.  Ada's compilation control facilities
    enable controlled change; they provide firewalls against modification
    which serve to require that all aspects of the propagating change(s)
    are considered throughout the system, and this is a very good thing
    which we should not dispense with lightly.  Even the scheme I've
    described should be applied only with extreme caution.
 
> [...] a general facility to change Adt operations is desirable.  For 
> example, I might want an instance to output data in one way but under 
> other circumstances output data in another.  If an output operation is 
> implemented as a procedural variable, I could provide a change_output 
> operation which changes the output operation in the Adt. Thereafter, 
> the new print routine would be in effect whenever the output operation 
> is invoked.

    Other than doing things as I've described above, another way would
    be (assuming that New Ada expands the idea of a specification to 
    include any accesses to externally defined objects/definitions) to
    have the output procedure examine its environment to decide what to do.

> I don't think procedural variables or class structures will make Ada 
> much bigger.  Procedural variables are not complicated in Modula [...] 

    But Modula doesn't have generics.  Using the combination of generics
    and the class abstraction outlined in my earlier article, I think
    we'll get more power, with better readability.

> This isn't what I had in mind.  What if variables of type Tree_Type should
> be traversed in different ways depending on context?  

    Just make basic traversal operations a part of your abstraction.



                                             Bill Wolfe

                                      wtwolfe@hubcap.clemson.edu

  reply	other threads:[~1989-01-05 10:02 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1988-12-30 21:42 Procedure types and dynamic binding Erland Sommarskog
1988-12-31 17:46 ` Bob Hathaway
1989-01-05 10:02   ` William Thomas Wolfe,2847, [this message]
1989-01-07 18:05     ` Bob Hathaway
1989-01-07 21:21       ` William Thomas Wolfe,2847,
1989-01-08  1:49         ` Bob Hathaway
1989-01-08 19:01           ` William Thomas Wolfe,2847,
1989-01-08 23:10             ` Bob Hathaway
1989-01-09  1:47               ` William Thomas Wolfe,2847,
1989-01-09 20:19                 ` Bob Hathaway
1989-01-10  3:01                   ` William Thomas Wolfe,2847,
1989-01-10  3:06                   ` Bob Hathaway
1989-01-10 19:11                     ` William Thomas Wolfe,2847,
1989-01-11  2:08                       ` Bob Hathaway
1989-01-11 14:24                         ` William Thomas Wolfe,2847,
1989-01-11 17:51                           ` Barry Margolin
1989-01-11 22:54                             ` William Thomas Wolfe,2847,
1989-01-12 13:57                               ` Robert Firth
1989-01-12 19:09                                 ` William Thomas Wolfe,2847,
1989-01-14  0:46                                 ` Scott Moody
1989-01-15 18:28                                   ` William Thomas Wolfe,2847,
1989-01-24  4:07                                   ` Paul Stachour
1989-01-12  0:58                             ` William Thomas Wolfe,2847,
1989-01-12  6:12                               ` Barry Margolin
1989-01-11 14:48                         ` Submitting Ada 9X revision requests William Thomas Wolfe,2847,
1989-01-11  2:10                       ` Procedure types and dynamic binding Bob Hathaway
1989-01-05  7:38 ` William Thomas Wolfe,2847,
  -- strict thread matches above, loose matches on Subject: below --
1989-01-06 23:04 Erland Sommarskog
1989-01-07 22:20 ` William Thomas Wolfe,2847,
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox