comp.lang.ada
 help / color / mirror / Atom feed
From: 18k11tm001@sneakemail.com (Russ)
Subject: Re: status of Ada STL?
Date: 29 Jun 2002 21:05:19 -0700
Date: 2002-06-30T04:05:19+00:00	[thread overview]
Message-ID: <bebbba07.0206292005.45ad915a@posting.google.com> (raw)
In-Reply-To: afhoob$j1u$1@nh.pace.co.uk

"Marin David Condic" <dont.bother.mcondic.auntie.spam@[acm.org> wrote in message news:<afhoob$j1u$1@nh.pace.co.uk>...
> O.K. that's probably more accurate. My point was that the whole "vision" of
> the "=" operator is different from what Ada does. In C and C++ you can write
> an expression like: "X = Y = Z = 0 ;" because the "=" is viewed as a kind of
> binary function with side effects. (First you call "Z = 0" which has side
> effects on Z, then "Y = Z" which has side effects on Y, etc...) Whereas in
> Ada, the whole concept of an expression such as "X := Y := Z := 0;" would be
> foreign and incomprehensible, because it isn't viewed as a function with
> side effects, but as a fundamental statement of the language - "object gets
> the value of an expression".

Perhaps I am missing something here, but when you say the expression
"Z = 0" has a "side-effect" on Z you lose me. I don't see how
assignment can be considered a "side effect".

I confess I don't know didly about assignment in Ada, but I can tell
you that assignment in C++ for user defined types is a member
function. It does whatever the implementer of the class tells it to
do. And it is considered good form to have it return a reference to
"*this" so that assignment can be cascaded, as in "A = B = C = D".

If a C++ class does not explicitly define an assignment operator, the
compiler will define one by default. The default assignment operator
is often perfectly good. In fact, the only time the class should
define its own assignment operator is when the it contains a pointer
to data on the heap that needs to be copied in the assignment
operation. Otherwise, you are much better off with the default. The
same applies to copy constructors, by the way. Newbies often
misunderstand this and write their own unnecessarily, which can only
cause unnecessary bugs.

> So what falls to the right of ":=" has to be an "expression" and the only
> way for that to be an expression is for ":=" to be a binary function which
> starts redefining what it means to be a function because of side effects and
> then of course you've got the leftmost ":=" which can't any longer be
> "object gets expression" because now ":=" is a function and that means you
> need to allow function calls where the return value is discarded and.....
> (deep breath) Pretty soon, you're thoroughly hosed - and for what? So that
> some ex C/C++ programmers don't have to go through the change of life
> necessary to get comfortable with "X := X + 1;"? (Suggestion: Get Over It!
> :-)

Ya, and what about Cobol, Basic, Fortran, Java, Perl, Python, Matlab,
and Mathematica programmers? Should they all just get lost too?

As I said, I have no idea how assignment works in Ada, but it would be
nice if it worked as well as it does in C++.

> I'd think that tinkering with something this fundamental in the language to
> change it into a function with side effects would have such profound
> implications, that it would either "break" Ada or Ada would start to take on
> the characteristics of "organically grown"* (rather than "designed") that I
> consider to be the style of C/C++. It would be A Bad Thing.
> 
> *(IMHO, C++ shows all the signs of following the Harley Davidson Design
> Methodology - "If it breaks, make it bigger. If it sticks out, chrome it."
> :-)

I'll bet you wouldn't say that at a gathering of Hell's Angels. ;^)



  reply	other threads:[~2002-06-30  4:05 UTC|newest]

Thread overview: 188+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-14  7:21 status of Ada STL? Russ
2002-06-14 16:29 ` Stephen Leake
2002-06-14 18:44 ` Ted Dennison
2002-06-14 20:34 ` Ehud Lamm
2002-06-15 18:52   ` Russ
2002-06-16  2:42     ` David Marceau
2002-06-16  8:07     ` Pascal Obry
2002-06-16 18:23       ` Russ
2002-06-16 19:01         ` Pascal Obry
2002-06-16 19:04         ` Vinzent Hoefler
2002-06-17  1:59           ` Jeffrey Carter
2002-06-17  6:48             ` Russ
2002-06-17  7:04               ` Dale Stanbrough
2002-06-18  6:16                 ` Russ
2002-06-19  1:07                   ` Dale Stanbrough
2002-06-17  9:38               ` chris.danx
2002-06-17 15:53               ` Ted Dennison
2002-06-18  7:52                 ` Russ
2002-06-18 10:57                   ` chris.danx
2002-06-18 14:38                   ` Robert A Duff
2002-06-18 16:19                     ` Brian Rogoff
2002-06-18 17:12                       ` Frank J. Lhota
2002-06-18 18:03                         ` Brian Rogoff
2002-06-18 19:24                           ` Frank J. Lhota
2002-06-18 19:41                             ` Brian Rogoff
2002-06-25  0:02                         ` Steven Deller
2002-06-25  1:24                           ` Yet another assignment variation (was Re: status of Ada STL?) Dale Stanbrough
2002-06-25 12:53                             ` Frank J. Lhota
2002-06-25 17:48                             ` Georg Bauhaus
2002-06-26  3:13                             ` Robert A Duff
2002-06-18 19:03                     ` status of Ada STL? Robert A Duff
2002-06-18 19:54                       ` Brian Rogoff
2002-06-18 21:09                         ` Robert A Duff
2002-06-18 23:36                           ` Brian Rogoff
2002-06-19  1:37                             ` Robert A Duff
2002-06-19 16:25                               ` Brian Rogoff
2002-06-19 18:53                                 ` Robert A Duff
2002-06-19 20:23                                   ` Brian Rogoff
2002-06-19  3:57                           ` Russ
2002-06-18 21:55                   ` Dmitry A.Kazakov
2002-06-19  5:32                     ` Russ
2002-06-19 12:37                       ` Dmitry A. Kazakov
2002-06-20  6:50                         ` Russ
2002-06-20 12:21                           ` Ted Dennison
2002-06-20 21:42                           ` Dmitry A.Kazakov
2002-06-20 18:20                             ` Russ
2002-06-21 10:27                               ` Dmitry A. Kazakov
2002-06-20 18:21                             ` Russ
2002-06-20 19:09                             ` Russ
2002-06-17 17:16               ` Pascal Obry
2002-06-18  5:27                 ` Russ
2002-06-17 17:17               ` Pascal Obry
2002-06-17 21:40             ` Vinzent Hoefler
2002-06-17  5:20           ` Russ
2002-06-17  8:22             ` chris.danx
2002-06-17 14:00               ` Frank J. Lhota
2002-06-17 15:57               ` Marin David Condic
2002-06-18  6:12               ` Russ
2002-06-18  8:16                 ` chris.danx
2002-06-18 14:52                   ` Robert A Duff
2002-06-18 16:02                     ` Pascal Obry
2002-06-18 16:54                       ` Hyman Rosen
2002-06-18 22:58                         ` Jacob Sparre Andersen
2002-06-18 19:09                     ` Robert A Duff
     [not found]                     ` <ud6uolglz.fsf@w <wccsn3kxv3g.fsf@shell01.TheWorld.com>
2002-06-19  8:09                       ` Pascal Obry
2002-06-19  3:04                   ` Russ
2002-06-19 16:40                     ` Hyman Rosen
2002-06-19 18:07                       ` Brian Rogoff
2002-06-18  9:37                 ` Fraser Wilson
2002-06-18 15:45                   ` Hyman Rosen
2002-06-19 16:55                   ` Robert I. Eachus
2002-06-19 19:13                     ` Robert A Duff
2002-06-20  7:43                       ` Dmitry A.Kazakov
2002-06-22 22:05                       ` Robert I. Eachus
2002-06-17 21:40             ` Vinzent Hoefler
2002-06-18 15:05               ` Robert A Duff
2002-06-18 22:36                 ` Vinzent Hoefler
2002-06-19 12:45                   ` Dmitry A. Kazakov
2002-06-19 14:35                     ` Marin David Condic
2002-06-21 11:03                       ` Dmitry A. Kazakov
2002-06-21 16:58                         ` Mark Biggar
2002-06-22 23:23                           ` Dmitry A.Kazakov
2002-06-27  3:00                       ` David Thompson
2002-06-28 13:36                         ` Marin David Condic
2002-06-30  4:05                           ` Russ [this message]
2002-06-30 13:50                             ` Ted Dennison
2002-07-01 13:12                             ` Marin David Condic
2002-07-02 19:56                           ` Robert A Duff
     [not found]                           ` <bebbba07.0206292005.45ad915a@p <wcc4rfhj43l.fsf@shell01.TheWorld.com>
2002-07-02 20:40                             ` Pat Rogers
2002-06-18 15:21             ` Robert A Duff
2002-06-19  0:34               ` tmoran
2002-06-19  2:55               ` Russ
2002-06-19  4:53                 ` Ted Dennison
2002-06-19  8:21                 ` Pascal Obry
2002-06-19 14:52                 ` Stephen Leake
2002-06-20  1:45                 ` SteveD
2002-06-20  2:01                   ` Ted Dennison
2002-06-16 20:01         ` Pascal Obry
2002-06-17  5:29           ` Russ
2002-06-16 23:02         ` Ted Dennison
2002-06-17  5:07           ` Russ
2002-06-17 14:03             ` Frank J. Lhota
2002-06-17 14:11             ` Ted Dennison
2002-06-18  5:55               ` Russ
2002-06-18 14:30                 ` Ted Dennison
2002-06-18 15:14                   ` Marin David Condic
2002-06-19 14:19                     ` Ted Dennison
2002-06-19 16:05                       ` Marin David Condic
2002-06-19  5:58                   ` Russ
2002-06-19 14:35                     ` Ted Dennison
2002-06-20  7:06                       ` Russ
2002-06-20 12:27                         ` Ted Dennison
2002-06-20 23:22                           ` Russ
2002-06-21  2:00                             ` Ted Dennison
2002-06-22  4:28                               ` Russ
2002-06-22 15:05                                 ` Ted Dennison
2002-06-21  8:48                             ` Ian Wild
2002-06-22  4:54                             ` Russ
2002-06-20 22:47                   ` Russ
2002-06-21  0:43                     ` Ted Dennison
2002-06-22  4:05                       ` Russ
2002-06-22 14:41                         ` Jano
2002-06-22 20:27                         ` Ted Dennison
2002-06-21 13:12                     ` Marin David Condic
2002-06-24  8:29                       ` Russ
2002-06-24 20:19                         ` Chad R. Meiners
2002-06-18 22:36                 ` Vinzent Hoefler
2002-06-18 22:42                   ` Ed Falis
2002-06-19  0:07                     ` Vinzent Hoefler
2002-06-19  0:07                   ` Vinzent Hoefler
2002-06-17 22:37             ` Dmitry A.Kazakov
2002-06-17 14:09               ` Frank J. Lhota
2002-06-18 21:40                 ` Dmitry A.Kazakov
2002-06-18 16:04         ` Robert A Duff
2002-06-18 16:37           ` Pascal Obry
2002-06-18 18:56             ` Robert A Duff
2002-06-18 22:20               ` Pascal Obry
2002-06-19 12:53               ` Dmitry A. Kazakov
2002-06-19  3:37           ` Russ
2002-06-19  8:31             ` Pascal Obry
2002-06-20  7:58               ` Russ
2002-06-20 20:34                 ` Pascal Obry
2002-06-21  4:07                   ` Russ
2002-06-17 15:33     ` Marin David Condic
2002-06-18 10:28       ` Adrian Hoe
2002-06-19  7:58         ` Ole-Hjalmar Kristensen
2002-06-19 13:55           ` Marin David Condic
2002-06-19 13:52         ` Marin David Condic
2002-09-18 15:23           ` Matthew Heaney
2002-09-19 12:11             ` Marin David Condic
2002-09-19 14:13               ` Hyman Rosen
2002-09-20 12:24                 ` Marin David Condic
2002-09-22  7:22                   ` Kevin Cline
2002-09-23 13:55                     ` Hyman Rosen
2002-09-19 19:42               ` Randy Brukardt
2002-09-20 12:38                 ` Marin David Condic
2002-09-27 21:21                   ` Michael Bode
2002-09-27 22:11                     ` Pat Rogers
2002-09-28 13:25                       ` Marin David Condic
2002-09-28 14:52                         ` Pat Rogers
2002-09-28 15:18                           ` Martin Dowie
2002-09-29 18:02                           ` Marin David Condic
2002-09-29 19:02                             ` Jeffrey Carter
2002-09-30  1:36                               ` Marin David Condic
2002-10-02 22:17                     ` Matthew Heaney
2002-09-28 17:25                 ` Richard Riehle
2002-09-30 17:12                   ` Marin David Condic
2002-10-01 18:41                     ` Randy Brukardt
2002-10-02  8:38                       ` Jean-Pierre Rosen
2002-10-02 12:43                         ` Marin David Condic
2002-10-02 14:26                           ` Jean-Pierre Rosen
2002-10-02 12:30                       ` Marin David Condic
2002-06-18  1:56     ` SteveD
2002-06-18 14:12       ` Robert A Duff
2002-06-18 14:28         ` chris.danx
2002-06-18 15:59           ` Pascal Obry
2002-06-18 18:58           ` Robert A Duff
2002-06-18 19:58           ` Randy Brukardt
2002-06-19 14:07             ` Marin David Condic
2002-06-19  2:19         ` SteveD
2002-06-18 11:40     ` Colin Paul Gloster
2002-06-20 15:15       ` Colin Paul Gloster
2002-06-18 19:34     ` Mike Silva
2002-06-25 16:31     ` Kevin Cline
2002-06-14 20:34 ` Dan Andreatta
  -- strict thread matches above, loose matches on Subject: below --
2002-06-17 11:05 Grein, Christoph
2002-06-18  5:36 ` Russ
2002-06-26 10:50 Grein, Christoph
replies disabled

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