comp.lang.ada
 help / color / mirror / Atom feed
From: jgv@swl.msd.ray.com (John Volan)
Subject: Re: SOLVED! Decoupled Mutual Recursion Challenger
Date: Tue, 25 Oct 1994 16:43:14 GMT
Date: 1994-10-25T16:43:14+00:00	[thread overview]
Message-ID: <1994Oct25.164314.28453@swlvx2.msd.ray.com> (raw)
In-Reply-To: 38i65r$li2@network.ucsd.edu

mbk@inls1.ucsd.edu (Matt Kennel) writes:

>Jay Martin (jmartin@baleen.cs.ucla.edu) wrote:

>: Ada9x is too obese and is being too effected by trying to be an
>: "elegant" (rigid) extension of obese Ada83.  I really don't understand
>: why can't some clown spend a few minutes to come up with a cleaner
>: smaller (more minimalist) Ada style language.

>That's what Meyer did, it's called Eiffel.  Really.  Ada83 was a big
>influence.

Eiffel is nice.  I like Eiffel.  But is Eiffel really enough?  Why does
Eiffel need LACE to prop it up, for instance?

>Absent this, the problem here in 9x can be "solved" by a nearly transparent
>change to the language:  say "cyclic dependencies in types, but not
>initialization expressions, are now allowed."  like
>it always should have been, in my opinion.

I dispute that this is a "nearly transparent" change to the language.
Other folks have already pointed out to you that Ada's
order-of-declaration dependencies reflect an underlying assumption
about declarations: They all get *elaborated* at run-time, in a
specific order.  That is, every declaration "takes effect" at a
specific point in time during execution, and this might (or might not,
as the case may be) cause something to occur at run time (such as
initialization).  This rule applies to *all* declarations in Ada,
including variable declarations, type declarations, subprogram
declarations, package declarations, what have you.

Your answer to this seems to be: "Well, let's single out one kind of
declaration -- type declarations -- as a *special case* that totally
violates that general rule, just to make one particular style of
programming easier, or to make Ada more closely resemble somebody
else's pet language.  Go ahead and refer to types that haven't been
declared yet -- even types from other packages that haven't been
*compiled* yet. We don't really care who gets elaborated first ..."

IMHO, that road leads to madness.  If you establish broad language
design principles, but then overrule them for special cases at every
turn, you wind up with a recipe for a bloated, complex, and incoherent
language.  No thank you.  A lot of the additional power in Ada9X over
Ada83 has arisen as a direct result of *broadening* the application of
Ada's original principles, *eliminating* special-case situations, NOT
adding new ones.

>Now you can declare an X which has a component of type/package/class/whatever
>Y, and have Y which has a component of class X.

"Type/package/class/whatever"????  Again, you're conflating all these
things to be the same thing, as if Ada were Eiffel.

>It's not transparent to the compiler implementors, but no fix
>here would be.

Of course.  But I would rather live with "package abstracts" than
"automagically forwarded types."

--------------------------------------------------------------------------------
--  Me : Person := (Name                => "John Volan",
--                  Company             => "Raytheon Missile Systems Division",
--                  E_Mail_Address      => "jgv@swl.msd.ray.com",
--                  Affiliation         => "Enthusiastic member of Team Ada!",
--                  Humorous_Disclaimer => "These opinions are undefined " &
--                                         "by my employer and therefore " &
--                                         "any use of them would be "     &
--                                         "totally erroneous.");
--------------------------------------------------------------------------------





  parent reply	other threads:[~1994-10-25 16:43 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-10-12 22:49 SOLVED! Decoupled Mutual Recursion Challenger John Volan
1994-10-17 15:48 ` John Volan
1994-10-17 17:55   ` Bob Duff
1994-10-17 20:52     ` John Volan
1994-10-17 22:10       ` Bob Duff
1994-10-18 22:17         ` John Volan
1994-10-19  1:01           ` Bob Duff
1994-10-19  4:45             ` Jay Martin
1994-10-19 14:38               ` Mark A Biggar
     [not found]                 ` <38fi4r$l81@oahu.cs.ucla.edu>
1994-10-24 11:49                   ` Mutual Recursion Challenge Robert I. Eachus
1994-10-24 20:32                     ` John Volan
1994-10-26 11:42                       ` Generic association example (was Re: Mutual Recursion Challenge) Robert I. Eachus
1994-10-26 23:21                         ` John Volan
1994-10-27 10:53                           ` Robert I. Eachus
1994-10-31 17:34                             ` John Volan
1994-10-27 14:37                           ` Mark A Biggar
1994-10-24 17:42                   ` SOLVED! Decoupled Mutual Recursion Challenger John Volan
1994-10-24 22:37                     ` Jay Martin
1994-10-25  5:47                       ` Matt Kennel
1994-10-25 10:04                         ` David Emery
1994-10-25 16:43                         ` John Volan [this message]
1994-10-27  4:25                           ` Rob Heyes
1994-10-28  9:03                             ` Mutual Recursion (was Re: SOLVED! Decoupled Mutual Recursion Challenger) Robert I. Eachus
1994-10-28 15:04                             ` SOLVED! Decoupled Mutual Recursion Challenger Robb Nebbe
1994-10-25 15:54                       ` John Volan
1994-10-26  1:24                         ` Bob Duff
1994-10-28  4:28                         ` Jay Martin
1994-10-28 10:52                           ` Robert I. Eachus
1994-10-28 18:46                             ` Jay Martin
1994-11-02 14:56                               ` Robert I. Eachus
1994-10-29  0:38                           ` Bob Duff
1994-10-29  7:26                             ` Jay Martin
1994-10-29 11:59                             ` Richard Kenner
1994-10-31 13:17                               ` Robert Dewar
1994-10-31 14:13                               ` gcc distribution (was: SOLVED! Decoupled Mutual Recursion Challenger) Norman H. Cohen
1994-11-02 14:14                                 ` Richard Kenner
1994-11-04 23:56                                   ` Michael Feldman
1994-10-31 18:44                           ` SOLVED! Decoupled Mutual Recursion Challenger John Volan
1994-10-20 11:25               ` Robb Nebbe
1994-10-20 19:19                 ` John Volan
1994-10-26  0:07                 ` Mark S. Hathaway
1994-10-26 18:48                 ` gamache
1994-10-27  2:15                   ` John Volan
     [not found]           ` <CxwGJF.FwB@ois.com>
1994-10-19 16:35             ` John Volan
1994-10-17 22:54   ` Cyrille Comar
replies disabled

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