comp.lang.ada
 help / color / mirror / Atom feed
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.



  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