comp.lang.ada
 help / color / mirror / Atom feed
From: G <Dizzy@interact.net.au>
Subject: null record extension mechanism
Date: 1999/11/10
Date: 1999-11-10T00:00:00+00:00	[thread overview]
Message-ID: <38295873.990923A1@interact.net.au> (raw)

Hi all.   So,  in something like the following :
----------------------
  Type Unit Is (Single, Dependent, Group);

  Type Component Is Abstract Tagged Null Record;
  -- Components are constituent elements in the system.

  Type Component_Unit Is New Component With
  Record
    Simple_Component : Unit := Single;
    Complex_Component : Unit := Dependent;
    Compound_Component : Unit := Group;
  End Record;
-------------------------

  The whole point of having an [abstract][tagged][null][record] is
so that it can be extended.  Is that correct ? It can not itself be
instantiated, but derivations of it can.  So, it appears that one of the

major activities programmers (in this language) undergo is
the careful sculpturing/engineering of types. (?)
  I get lost very easily trying to follow the connections.  It is
apparent
that what I believe to be the representation in the types I make is
not necessarily what I am trying to achieve with them.  The above
fragment
probably means something very different to what I think it does.  It is
very
difficult to work out just how to put concepts together - I guess that
at
some undetermined time in the future, the "penny will drop" and
I will no longer be stumbling in the darkness with this.  I am playing
now
with ideas from the various systems of a specific [rah-66] helicopter.
I find that playing with types
allows me insight into the various systems and their interactions.
  What I am trying to figure out is what base types to make, such that
they nicely encapsulate all the possible derivations that need to be
extended from them.  Is there any useful online information about
strategies for doing this design work ?

thanks,
Graeme

  *hailing from "Down Under", great vast Aussie land of beer and
mosquitoes.*






             reply	other threads:[~1999-11-10  0:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-11-10  0:00 G [this message]
1999-11-10  0:00 ` null record extension mechanism Matthew Heaney
replies disabled

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