comp.lang.ada
 help / color / mirror / Atom feed
From: Marin David Condic <mcondic.nospam@acm.org>
Subject: Re: Constructors/Destructors in Ada95
Date: 2000/10/25
Date: 2000-10-25T12:28:07+00:00	[thread overview]
Message-ID: <39F6D201.73C006FA@acm.org> (raw)
In-Reply-To: m3hf615s3n.fsf@ns57.infomatch.bc.ca

Ray Blaak wrote:

> I really would like to be able to do:
>
>   procedure ":="(target : in out T; source : in T);
>
> so as to have complete control over what is happening. I vaguely recall some
> rationale from the Ada 9X discussions for why user-defined assignment per se
> was not incorporated. Does anyone remember?

I don't know about the Ada 9X discussions specifically, but if you think about it,
there are a lot of obvious problems with trying to redefine ":=". The biggest
problem is that it is not a subprogram - it is a primitive feature of the language.
I believe this might be an example of Godel's Theorem. There are some features of
the language (any language) that cannot be expressed in the language itself. As a
"function" it would require that a) the left parameter be treated as "out" and b)
that the function need not return a result. (or that it could be ignored. Does a
statement like: "X < Y ;" make sense in Ada?) As a procedure, you'd have to allow
procedures to have symbol names - which opens up a whole can of worms. Further, it
would mean allowing "infix procedures" which is hard to make sense of - or at least
could make programs look really strange.

I'm sure there are dozens of other reasons why it was decided not to provide a
means of letting the user define assignment. I'd think it would require perverting,
warping and twisting language concepts too much. (Look at the semantics of C++
construction/destruction sometime - especially as it applies to function parameters
- and see what an abomination that can become! :-)
--
======================================================================
Marin David Condic - Quadrus Corporation - http://www.quadruscorp.com/
Send Replies To: m c o n d i c @ q u a d r u s c o r p . c o m
Visit my web site at:  http://www.mcondic.com/

    "Giving money and power to Government is like giving whiskey
    and car keys to teenage boys."

        --   P. J. O'Rourke
======================================================================






  parent reply	other threads:[~2000-10-25  0:00 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-18  0:00 Constructors/Destructors in Ada95 Francois Godme
2000-10-19  0:00 ` Ted Dennison
2000-10-19  0:00 ` tmoran
2000-10-19  0:00   ` Francois Godme
2000-10-19  0:00     ` Ted Dennison
2000-10-20  0:00     ` Tucker Taft
2000-10-20  0:00       ` Francois Godme
2000-10-21  0:00         ` Marin David Condic
2000-10-23  0:00       ` Francois Godme
2000-10-24  0:00         ` Ray Blaak
2000-10-25  0:00           ` Francois Godme
2000-10-25  0:00           ` Marin David Condic [this message]
2000-10-25  0:00             ` dmitry6243
2000-10-25  0:00               ` Pascal Obry
2000-10-26  0:00                 ` dmitry6243
2000-10-25  0:00               ` mark.biggar
2000-10-26 11:44                 ` dmitry6243
2000-10-26 13:25                   ` Robert A Duff
2000-10-27  8:10                     ` dmitry6243
2000-10-26 17:55                   ` tmoran
2000-10-27  8:10                     ` dmitry6243
2000-10-26 21:31                 ` Tucker Taft
2000-10-27  8:46                   ` dmitry6243
2000-10-27  7:12             ` Ray Blaak
2000-10-27 18:11           ` Francois Godme
2000-10-30 11:36             ` Robert A Duff
2000-10-30 22:03               ` dale
2000-10-22  0:00     ` rwilson007007
2000-10-22  0:00       ` Francois Godme
2000-10-24  0:00         ` rwilson007007
2000-10-19  0:00 ` Marin David Condic
  -- strict thread matches above, loose matches on Subject: below --
2000-10-29 22:51 rwilson007007
2000-10-30  4:03 ` Ray Blaak
2000-10-30 12:13 ` Marin David Condic
2000-10-30 16:39   ` Randy Brukardt
replies disabled

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