From: bobduff@world.std.com (Robert A Duff)
Subject: Re: The Red Language
Date: 1997/09/22
Date: 1997-09-22T00:00:00+00:00 [thread overview]
Message-ID: <EGxFIA.43J@world.std.com> (raw)
In-Reply-To: dewar.874757740@merv
In article <dewar.874757740@merv>, Robert Dewar <dewar@merv.cs.nyu.edu> wrote:
>Bob Duff said (I'm really really sure it was him :-)
:-) :-)
Now, how can I prove it? Hmm. How about, "We compared maple syrups at
the Vt ARG meeting." Convinced?
>The concern is for simplicity from a users point of view. We have had this
>long discussion in the (rather tedious) Eiffel-vs-Ada thread about the
>desirability of linear elaboration, and this issue is related. If you have
>a really complex expression and you want to figure out what is being calld
>where, then clearly the one-pass scheme is easier for a human to figure out.
Ah, that makes sense.
I have often thought that the rules ought to allow bottom-up
information, but only left-to-right. For example, the first argument of
a procedure can be used to resolve the second one, but not the other way
around. It's always seemed strange to me that the right-hand side of an
assignment statement can help resolve the left-hand side.
So, "X := X + 1;" would be legal, but "X := 1 + X;" would be ambiguous.
(Of course, "X := 2*X;" would also be illegal, which would be somewhat
unfortunate.)
>The question is whether this simplicitly is gained at the expense of loss
>of expressive power.
>
>There is no question that there are cases where the Ada scheme is
>a great advantage:
>
> generic
> type Element_Type is private
> package Set_Package is
> functoin Empty_Set return Element_Type;
> function Value (A : String) return Element_Type;
> ...
>
>It is really useful to be able to instantiation Set_Package for various
>different types, apply a use clause to the insantiations, and have the
>compiler figure out which Empty_Set and Value functions you want.
Yes, that's nice.
>The time that the two-pass scheme begins to cause trouble is in mixed
>operations. For example, one might think it was useful to have all the
>following in Unbounded_String:
>
>(where UString is short for Unbounded_String)
>
>function "&" (A : String; B : String) return Unbounded_String;
>function "&" (A : UString; B : String) return Unbounded_String;
>function "&" (A : String; B : UString) return Unbounded_String;
>function "&" (A : UString; B : UString) return Unbounded_String;
>
>But it is a mistake, because now
>
> Ustring := "abcc" & Stringvar & Ustring;
>
>is annoyingly ambiguous. It is quite easy to trip up on this problem if
>you are not careful in designing such sets of mixed operations.
But this would be illegal in the Red/C++/Algol-68 rules, too.
- Bob
next prev parent reply other threads:[~1997-09-22 0:00 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <340E2DC5.25D7@worldnet.att.net>
[not found] ` <340ebdaf.230366903@news.mindspring.com>
[not found] ` <340ED5D8.2DEF6D3@ux4.sp.cs.cmu.edu>
1997-09-04 0:00 ` The Red Language Robert Munck
1997-09-07 0:00 ` Robert Dewar
1997-09-08 0:00 ` Richard Kenner
1997-09-12 0:00 ` David Wheeler
1997-09-12 0:00 ` Robert A Duff
[not found] ` <199709051335.PAA25952@basement.replay.com>
1997-09-05 0:00 ` Dean F. Sutherland
1997-09-08 0:00 ` Robert A Duff
1997-09-09 0:00 ` Arthur Evans Jr
[not found] ` <dewar.873953300@merv>
1997-09-11 0:00 ` Robert Dewar
1997-09-11 0:00 ` Arthur Evans Jr
1997-09-12 0:00 ` Robert A Duff
1997-09-12 0:00 ` Robert Dewar
1997-09-11 0:00 ` Dean F. Sutherland
1997-09-12 0:00 ` Robert A Duff
1997-09-07 0:00 ` Robert Dewar
1997-09-08 0:00 ` Tucker Taft
1997-09-12 0:00 ` Robert A Duff
1997-09-12 0:00 ` Michael & Amy Hartsough
1997-09-13 0:00 ` Matthew Heaney
1997-09-14 0:00 ` Robert A Duff
1997-09-16 0:00 ` Brian Rogoff
1997-09-18 0:00 ` Robert Dewar
1997-09-18 0:00 ` Brian Rogoff
1997-09-18 0:00 ` Robert A Duff
1997-09-18 0:00 ` Overload Resolution in Ada (Re: The Red Language) Brian Rogoff
1997-09-19 0:00 ` Robert A Duff
1997-09-19 0:00 ` Brian Rogoff
1997-09-20 0:00 ` Robert Dewar
1997-09-19 0:00 ` Robert Dewar
1997-09-19 0:00 ` The Red Language Robert Dewar
1997-09-19 0:00 ` Brian Rogoff
1997-09-19 0:00 ` Robert A Duff
1997-09-21 0:00 ` Robert Dewar
1997-09-21 0:00 ` Algol 68 references (Was Re: The Red Language) Brian Rogoff
1997-09-22 0:00 ` Mark L. Fussell
1997-09-22 0:00 ` The Red Language Richard A. O'Keefe
1997-09-25 0:00 ` Bruce Link
1997-09-22 0:00 ` Chris Morgan
1997-09-22 0:00 ` Richard Kenner
1997-09-30 0:00 ` Charles Lindsey
1997-10-03 0:00 ` Robert I. Eachus
1997-09-18 0:00 ` Robert Dewar
1997-09-18 0:00 ` Robert A Duff
1997-09-20 0:00 ` Robert Dewar
1997-09-22 0:00 ` Robert A Duff [this message]
1997-09-16 0:00 ` Brian Rogoff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox