comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Generic formals - meanings and Wikibook suggestion
Date: Mon, 7 Apr 2008 12:19:14 +0200
Date: 2008-04-07T12:19:14+02:00	[thread overview]
Message-ID: <12zxgjegnjyk9$.cxa77wthzn0m.dlg@40tude.net> (raw)
In-Reply-To: f0605eaf-b83f-4289-9256-461efdab99d2@t54g2000hsg.googlegroups.com

On Mon, 7 Apr 2008 02:25:06 -0700 (PDT), Maciej Sobczak wrote:

> The following table:
> 
> http://en.wikibooks.org/wiki/Ada_Programming/Generics#Generic_formal_types
> 
> is extremely useful with generics and provides invaluable help when
> writing or reading generic code.
> 
> (another way of putting it is that the syntax for generics is just
> broken ;-) )

Broken syntax fits to a broken concept. (:-))

Formal generic types try to express the contract on the actual type. The
idea was to make the generic formal part resembling concrete type
declarations. The problem is that the former defines a set of types (class,
we would say now), rather than just one type. 

> What is missing from this table is the full meaning of the basic:
> 
> type T is private;
> 
> This basic form is used in many places - even on the same Wikibook
> page.
> 
> What is the exact meaning of this basic form? What knowledge about T
> is expressed this way?

That the contract of T includes (I don't care about wording in strictly Ada
terms):

1. Default constructor
2. Assignment / initialization
3. "=" and "/="
4. new
5. some attributes, I am too lazy to sort out

> From AARM I conclude that it covers all non-limited types, but
> Wikibook provides the same description (second row in the table) for:
> 
> type T (<>) is private;
> 
> Is there any difference between the two?

Yes, it drops the position 1, so the actual of T can be indefinite.

> (hint: add the basic form to the same table in the Wikibook?)

As well as other cases missing. For example formal access to subprogram:

type T is access function ...;

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



      parent reply	other threads:[~2008-04-07 10:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-07  9:25 Generic formals - meanings and Wikibook suggestion Maciej Sobczak
2008-04-07 10:08 ` christoph.grein
2008-04-07 10:19 ` Dmitry A. Kazakov [this message]
replies disabled

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