From: Matthew Heaney <matthewjheaney@earthlink.net>
Subject: Re: 'Base
Date: Sat, 10 Dec 2005 03:30:54 GMT
Date: 2005-12-10T03:30:54+00:00 [thread overview]
Message-ID: <ud5k5fx1y.fsf@earthlink.net> (raw)
In-Reply-To: 1134160956.403383.29180@z14g2000cwz.googlegroups.com
ada_student@yahoo.com writes:
> Indefinite subtypes cannot be allowed under any circumstances.
I don't understand. What is type String?
> It sounds like a hack just inorder to allow one class of array object
> declarations into the language.
I would hardly call being able to declare strings of different lengths a hack!
> How can a statically typed language allow a type whose size is not known at
> compile time?
There's a "dope vector" associated with string objects, that describes the
length and bounds of the string.
> The Java array type certainly wins over Ada in this regard.
But array objects in Ada can be declared on the stack. This allows you do
things like:
procedure Op1 (N : Natural) is
S : String (1 .. N);
begin
procedure Op2 (S : String) is
S2 : String := S;
begin
In neither case is heap necessary. You can do this sort of thing with tagged
types too:
procedure Op (O : T'Class) is
O2 : T'Class := O;
begin
One nice feature is that if you do allocate an object whose type is class-wide,
then you can initialize the object the same as in the example above:
type T_Class_Access is access T'Class;
procedure Op2 (O : T'Class) is
O2 : constant T_Class_Access := new T'Class'(O);
begin
This is built into the language; you don't need a dispatching clone method.
next prev parent reply other threads:[~2005-12-10 3:30 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-08 15:21 'Base ada_student
2005-12-08 18:08 ` 'Base Matthew Heaney
2005-12-08 18:44 ` 'Base Martin Dowie
2005-12-08 18:49 ` 'Base Martin Dowie
2005-12-08 19:24 ` 'Base Matthew Heaney
2005-12-08 20:27 ` 'Base Martin Dowie
2005-12-08 19:51 ` 'Base Jeffrey R. Carter
2005-12-08 20:07 ` 'Base Matthew Heaney
2005-12-09 2:57 ` 'Base Randy Brukardt
2005-12-09 2:13 ` Avoiding constraint checks w/ 'Base Anonymous Coward
2005-12-09 3:11 ` Randy Brukardt
2005-12-09 13:11 ` 'Base krischik
2005-12-09 13:52 ` 'Base Matthew Heaney
2005-12-09 20:42 ` 'Base Randy Brukardt
2005-12-08 19:11 ` 'Base Martin Krischik
2005-12-09 20:42 ` 'Base ada_student
2005-12-09 21:39 ` 'Base Pascal Obry
2005-12-10 3:30 ` Matthew Heaney [this message]
2005-12-10 14:50 ` 'Base ada_student
2005-12-10 7:52 ` 'Base Martin Krischik
2005-12-10 12:55 ` 'Base Larry Kilgallen
2005-12-10 13:37 ` 'Base Björn Persson
2005-12-11 11:00 ` 'Base Martin Krischik
2005-12-10 15:01 ` 'Base Robert A Duff
2005-12-11 10:59 ` 'Base Martin Krischik
2005-12-12 9:14 ` 'Base Ole-Hjalmar Kristensen
2005-12-12 19:08 ` 'Base Martin Krischik
2005-12-13 19:24 ` 'Base tmoran
2005-12-13 21:00 ` 'Base Georg Bauhaus
2005-12-14 19:43 ` 'Base Per Sandberg
2005-12-15 20:08 ` 'Base Martin Krischik
2005-12-16 19:19 ` 'Base Jeffrey R. Carter
2005-12-17 7:52 ` 'Base Martin Krischik
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox