From: binette@asterix.drev.dnd.ca (Louis-Simon Binette)
Subject: Abstraction of variable size vectors (Corrected)
Date: 1 Aug 90 18:36:17 GMT [thread overview]
Message-ID: <1990Aug1.183617.218@asterix.drev.dnd.ca> (raw)
Valcartier, August 1st
I post this message again since I just realized that the original
one (dated July 23 or so..) contained an error in its IP address (I did
not receive any answer to it !). I apologize for those who spent time
trying to send me an answer. Anyway here is the message with the right
IP address:
Dear Folks,
I am currently in the process of designing a generic package that
encapsulates variable size vectors whose components are referenced by a
discrete type. The basic declarations of the package specification are:
generic
type GT_ELM is private; -- Element type
type GT_NDX is (<>); -- Index type of vector
package VECTOR_MNGR_TEMPLATE is
type T_VECTOR is limited private;
-- Other declarations come here (types and subprograms)
with T_VECTOR being the abstract data type for the variable size
vector. In order to extend the functionality of the language with res-
pect to the bounds of arrays [LRM 3.6.1] I have encapsulated the actual
values of the lower and upper bounds as part of the vector structure:
private
...;
type T_VECTOR is record
LOWER_BOUND,
UPPER_BOUND : ...; -- Base type of GT_NDX !!!
...;
end record;
...;
end VECTOR_MNGR_TEMPLATE;
As you might know, the range covered by the bounds of the array is
defined by the _base type_ of GT_NDX [LRM 3.5 (4)] in order to cope with
_null arrays_. Unfortunately, a type declaration like:
type T_BASE_NDX is range GT_NDX'BASE'FIRST..GT_NDX'BASE'LAST;
in the package is illegal since the bounds are not static (as spe-
cified in LRM 4.9 (11): "...other than a generic formal type;...").
Any opinion about what looks to me as a lack of extensibility of the
language? I would greatly appreciate suggestions (if any !) to this pro-
blem while keeping the genericity ("type GT_NDX is (<>);") of the package
Thanks in advance
Louis-Simon Binette
Internet : simon@quebec.drev.dnd.ca
IP...... : simon@131.132.32.17
next reply other threads:[~1990-08-01 18:36 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
1990-08-01 18:36 Louis-Simon Binette [this message]
-- strict thread matches above, loose matches on Subject: below --
1990-08-02 14:58 Abstraction of variable size vectors (Corrected) "Norman H. Cohen"
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox