comp.lang.ada
 help / color / mirror / Atom feed
From: mark_lundquist@my-deja.com
Subject: Re: Parameter Modes, In In Out and Out
Date: Thu, 11 Jan 2001 21:24:24 GMT
Date: 2001-01-11T21:24:24+00:00	[thread overview]
Message-ID: <93l89r$r9m$1@nnrp1.deja.com> (raw)
In-Reply-To: 93cagm$c1j$1@nnrp1.deja.com

In article <93cagm$c1j$1@nnrp1.deja.com>,
  dmitry6243@my-deja.com wrote:
> In article <938p3u$omv$1@nnrp1.deja.com>,
>   Robert Dewar <robert_dewar@my-deja.com> wrote:
> > In article <3A57CD7F.2228BFD5@brighton.ac.uk>,
> >   John English <je@brighton.ac.uk> wrote:
> >
> > > I prefer to consider parameter passing by copy-and-return
> > > rather than by-reference as the norm (even though it applies
> > > to fewer situations in practice)
> >
> > But unfortunately, this model is just wrong for by-reference
> > types. Especially in object oriented programming, where all
> > tagged types are passed by reference, it is quite wrong to
> > regard the input as uninitialized, since this does not
> > correspond with the semantics of the language.
>
> OOP does not enforce "tagged types" to be passed by reference. This is
> Ada 95 specific. Only class-wide types shall be passed by reference
(for
> their size is unknown).

"tagged type" is an Ada locution -- when Robert uses it, you know he is
talking about Ada!  So I think he meant something like, "...in object
oriented Ada programming where you are using tagged types, it is quite
wrong to regard the parameter as uninitialized, since tagged types are
always passed by reference"!

>
> Maybe I am wrong, but it seems that RM does not forbid to keep the
type
> tag separated from the value. Does it?

No, it doesn't; it's just that the tag is not "part of" the value
(regardless of where it is "kept").

>
> Anyway the clear distinction of normal types and class-wide types is
an
> excellent (revolutionaly, IMO) concept. It is pity that Ada 95 didn't
> use all advantages of the concept. For instance, to have multiple
> dispatch, or even, all types "tagged"!

Interesting idea, but I don't know that I agree it's "a pity" that Ada
didn't do these things.  Ada is a practical language.  Making scalars,
etc. carry a tag around wouldn't be worth it.  It would really foul up
system-level programming and interfacing to other languages. I don't
see a whole lot of value in doing classwide programming on integers or
arrays anyway (with plenty of opportunity for obscure code).  Can't you
get the same effect by declaring a tagged container, then deriving from
that?  Use a tagged record if you want taggedness... simple, there's no
loss of power there...

-- mark



Sent via Deja.com
http://www.deja.com/



  parent reply	other threads:[~2001-01-11 21:24 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-06  0:11 Parameter Modes, In In Out and Out i.a.mcleod
2001-01-06  4:58 ` tmoran
2001-01-06 17:06   ` Robert Dewar
2001-01-06 19:50     ` tmoran
2001-01-06 20:31       ` Robert Dewar
2001-01-07  1:59     ` John English
2001-01-07  3:51       ` Robert Dewar
2001-01-08 12:06         ` dmitry6243
2001-01-09  4:32           ` Robert Dewar
2001-01-09 10:05             ` dmitry6243
2001-01-09  4:35           ` Robert Dewar
2001-01-09  9:58             ` dmitry6243
2001-01-09 14:13               ` Robert Dewar
2001-01-09 18:29                 ` dmitry6243
2001-01-09 19:55                   ` Robert Dewar
2001-01-10  0:47                     ` Brian Rogoff
2001-01-10 21:50                       ` Robert Dewar
2001-01-10  9:23                     ` dmitry6243
2001-01-10 21:46                       ` Robert Dewar
2001-01-11 11:46                         ` dmitry6243
2001-01-11 16:48                           ` Robert Dewar
2001-01-11 19:52                             ` Thierry Lelegard
2001-01-11 20:10                               ` Pascal Obry
2001-01-12  8:05                                 ` Florian Weimer
2001-01-12 13:31                               ` gasperon
2001-01-12 14:02                                 ` n_brunot
2001-01-12 17:26                                   ` charlet
2001-01-14 18:23                                     ` n_brunot
2001-01-14 21:05                                       ` Robert Dewar
2001-01-15  8:56                                         ` n_brunot
2001-01-12 11:05                             ` dmitry6243
2001-01-12 13:55                               ` Robert Dewar
2001-01-12 22:10                                 ` Dale Stanbrough
2001-01-13  1:13                                   ` Robert Dewar
2001-01-13 17:29                                 ` dmitry6243
2001-01-13 18:22                                   ` Robert Dewar
2001-01-13 22:32                                     ` Brian Rogoff
2001-01-14  6:02                                       ` Jeffrey Carter
2001-01-14 14:33                                         ` Robert Dewar
2001-01-14 18:14                                           ` Jeffrey Carter
2001-01-14 21:10                                             ` Robert Dewar
2001-01-14 20:45                                         ` Brian Rogoff
2001-01-14 14:23                                       ` Robert Dewar
2001-01-14 20:42                                         ` Brian Rogoff
2001-01-14 21:17                                           ` Robert Dewar
2001-01-15 20:57                                             ` Brian Rogoff
2001-01-15 16:25                                     ` dmitry6243
2001-02-02  7:06                                       ` Multiple dispatch (was " mark_lundquist
2001-02-02 13:49                                         ` dmitry6243
2001-01-16 12:22                                 ` Georg Bauhaus
2001-01-13  4:46                           ` Larry Kilgallen
     [not found]                           ` <93ko49$auq$1@nnrp1.deja.coOrganization: LJK Software <eiviJtYj+A7W@eisner.decus.org>
2001-01-13  6:00                             ` Robert Dewar
2001-01-11 21:38               ` mark_lundquist
2001-01-12  0:20                 ` John English
2001-01-12 13:57                   ` Robert Dewar
2001-01-12 20:34                     ` mark_lundquist
2001-01-13 18:06                       ` Brian Rogoff
2001-01-11 21:28             ` mark_lundquist
2001-01-12 12:35               ` dmitry6243
2001-01-12 21:22                 ` mark_lundquist
2001-01-13  1:16                   ` Robert Dewar
2001-02-02  5:42                     ` mark_lundquist
2001-02-02 14:55                       ` Stephen Leake
2001-02-02 20:08                         ` Robert Dewar
2001-02-05 15:00                           ` Stephen Leake
2001-01-13 21:26               ` Jean-Pierre Rosen
2001-01-11 21:24           ` mark_lundquist [this message]
2001-01-12 12:13             ` dmitry6243
2001-01-06 16:21 ` Jean-Pierre Rosen
2001-01-09 15:15   ` Thierry Lelegard
2001-01-10 21:53     ` Robert Dewar
2001-01-07 19:15 ` DuckE
2001-01-09 20:44 ` Laurent Guerby
2001-01-09 21:46   ` Florian Weimer
2001-01-10 21:57   ` Robert Dewar
2001-01-10 23:51     ` Tucker Taft
2001-01-11  4:23       ` Robert Dewar
2001-01-11 19:28     ` Laurent Guerby
2001-01-18 18:53 ` FAROOQATIF
replies disabled

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