comp.lang.ada
 help / color / mirror / Atom feed
From: "Xenos" <dont.spam.me@spamhate.com>
Subject: Re: Zero length Objects
Date: Thu, 1 Jul 2004 10:06:06 -0400
Date: 2004-07-01T10:06:06-04:00	[thread overview]
Message-ID: <cc15on$nsc5@cui1.lmms.lmco.com> (raw)
In-Reply-To: 2kh2leF2ct4hU1@uni-berlin.de


"Nick Roberts" <nick.roberts@acm.org> wrote in message
news:2kh2leF2ct4hU1@uni-berlin.de...
> "Frank J. Lhota" <NOSPAM.lhota.adarose@verizon.net> wrote in message
> news:PSFEc.50650$aJ3.17580@nwrdny02.gnilink.net...
>
> > No object is really of zero length. The reason is that every object
should
> > have a unique address. Therefore, most Ada compilers will allocate at
> least
> > one storage element to each object, in order to insure that if we
declare
> >
> >        A, B : Empty_Type;
> >
> > then A and B do not both refer to the same location.
>
> Yes indeed. There was a long discussion about this in the Ada Comment
list.
> I hope Randy and Tucker are reading this thread, because it seems to add
> fuel to my argument that the 'right' thing for a compiler to do is to
allow
> zero-size objects (and to perform zero-size allocation for them), and to
> implement the access value mechanism I suggested.
>
> For the curious, the mechanism I suggested was that the compiler 'invents'
> unique encodings for access values that reference zero-size objects. An
> invented encoding can be any value that can be stored in an object of the
> access type which is guaranteed never to be the same as any valid address
> (or other invented value in scope), assuming the typical mechanism that an
> access value which references a nonzero-size object is simply its address.
>
> This provides a way to preserve the 'uniqueness characteristic' of access
> values, that if they designate different objects their values will be
> different, without preventing the implementation of genuinely zero-size
> objects (that do not take up any memory at all).
>
> I believe the uniqueness characteristic of access values should be
inviolate
> (because certain algorithms might depend on it), and that genuinely
> zero-size objects (actually, zero-size types) are sometimes useful (in
> generic instantiations). Randy and Tucker disagreed (or at least, they
> didn't agree that the uniqueness characteristic should be mandated by the
> standard for access values referencing zero-size objects). I live in hope.
>
> -- 
> Nick Roberts
>
>

C++ has a similar rule that says an object cannot be zero bytes in size, but
it does says that an empty (no data members) base class may be zero size
within the inherited class.  Does Ada have a similar rule to this?  Meaning
if I create a null record and derive a another record from it, will the null
record take up zero space within the derived record?  Sorry, if my
terminology isn't exact for Ada, I a little new to the 95 standard.






  parent reply	other threads:[~2004-07-01 14:06 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-30  5:55 Zero length Objects Robert C. Leif
2004-06-30 20:32 ` Jacob Sparre Andersen
2004-06-30 21:01 ` Frank J. Lhota
2004-07-01  0:02   ` Nick Roberts
2004-07-01  1:28     ` Georg Bauhaus
2004-07-01 10:37       ` Björn Persson
2004-07-01 11:25     ` Larry Kilgallen
2004-07-01 14:11       ` Nick Roberts
2004-07-01 15:42         ` Larry Kilgallen
2004-07-01 14:06     ` Xenos [this message]
2004-07-01 15:26       ` Nick Roberts
2004-07-02  1:06         ` Jeffrey Carter
2004-07-01  0:47   ` Brian May
2004-07-01 13:32     ` Frank J. Lhota
2004-07-01 14:52       ` Nick Roberts
2004-07-01 15:03         ` Xenos
2004-07-01 15:57           ` Hyman Rosen
2004-07-01 16:05             ` Xenos
2004-07-02 15:02               ` Frank J. Lhota
2004-07-02 15:11                 ` Adrian Knoth
2004-07-02 15:43                   ` Frank J. Lhota
2004-07-02 19:01                     ` Vinzent 'Gadget' Hoefler
2004-07-02 19:07                       ` Adrian Knoth
2004-07-02 19:25                         ` Vinzent 'Gadget' Hoefler
2004-07-02 21:06                           ` Xenos
2004-07-02 21:56                             ` Vinzent 'Gadget' Hoefler
  -- strict thread matches above, loose matches on Subject: below --
2004-07-02  8:30 Christoph Karl Walter Grein
2004-07-06 11:59 ` Nick Roberts
2004-07-06 22:14   ` Randy Brukardt
2004-07-06 22:28     ` Nick Roberts
replies disabled

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