comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <spam@spam.com>
Subject: Re: Proposed change to BC iterator parameters
Date: Thu, 11 Dec 2003 17:39:40 GMT
Date: 2003-12-11T17:39:40+00:00	[thread overview]
Message-ID: <wZ1Cb.7719$_r6.4390@newsread1.news.pas.earthlink.net> (raw)
In-Reply-To: <wccisknv0lm.fsf@shell01.TheWorld.com>

Robert A Duff wrote:

> The data we're talking about is not *very* global.  It's local to the
> procedure containing the instantiation.  Yes, it's global to the actual
> procedure passed to Apply, but that's probably a pretty small region of
> code.

In simple languages such as FORTRAN 66, data are either local or global. 
In Ada, there are a number of shadings to the locality of data. This 
kind of data is essentially "state data", and should be considered an 
acceptable use. It is similar to the components of a protected unit: 
global to, but accessible only by a small, well defined set of operations.

I agree with Duff in general, but in the case of providing iteration 
over a protected structure, one must use an access-to-subprogram 
parameter. The actual subprogram will often need to be defined at the 
library level to pass accessibility checks. To allow various iterators 
to access local data, you have to use the Context parameter approach. If 
the protected structure is implemented with an unprotected structure 
component, and the protected iterator is implemented by instantiating an 
iterator from the unprotected structure, then the unprotected iterator 
has to have a Context parameter as well.

Protected structures, especially protected queues, are quite useful. It 
is because the PragmAda Reusable Components provide protected structures 
that they have Context parameters for their iterators, not because of a 
concern about global data. Since AI-302-01 is based on the PragmARCs, 
its iterators also have Context parameters.

-- 
Jeff Carter
"Sir Lancelot saves Sir Gallahad from almost certain temptation."
Monty Python & the Holy Grail
69




  reply	other threads:[~2003-12-11 17:39 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-10 13:36 Proposed change to BC iterator parameters amado.alves
2003-12-10 16:47 ` Proposed change to BC iterator parameters [limitedness] Georg Bauhaus
2003-12-10 17:39 ` Proposed change to BC iterator parameters Martin Krischik
2003-12-10 18:22 ` Jeffrey Carter
2003-12-10 23:00   ` Robert A Duff
2003-12-11  1:00     ` Jeffrey Carter
2003-12-11 15:09       ` Robert A Duff
2003-12-11  8:33     ` Dmitry A. Kazakov
2003-12-10 20:50 ` Simon Wright
2003-12-10 23:12 ` Robert A Duff
2003-12-11  5:07   ` Steve
2003-12-11 15:24     ` Robert A Duff
2003-12-11 17:39       ` Jeffrey Carter [this message]
2003-12-12 22:22         ` Robert A Duff
2003-12-13  0:57           ` Jeffrey Carter
2003-12-17 20:59             ` Robert A Duff
2003-12-18 10:05               ` Dmitry A. Kazakov
2003-12-18 18:14                 ` Robert A Duff
2003-12-19 10:53                   ` Dmitry A. Kazakov
2003-12-19 16:17                     ` Georg Bauhaus
2003-12-19 17:19                       ` Dmitry A. Kazakov
2003-12-19 22:51                         ` Robert A Duff
2003-12-20 12:20                           ` Dmitry A. Kazakov
2003-12-19 22:47                       ` Robert A Duff
2003-12-20  2:11                         ` Stephen Leake
2003-12-20 19:08                         ` Robert I. Eachus
2003-12-21 11:39                           ` Simon Wright
2003-12-21 18:13                             ` Robert I. Eachus
2003-12-21 13:58                           ` Dmitry A. Kazakov
2003-12-22  1:25                             ` Robert I. Eachus
     [not found]         ` <916oa1-c93.ln1@beastie.ix.netcom.com>
2003-12-13 16:57           ` Simon Wright
2003-12-12  5:29     ` Simon Wright
2003-12-12 22:26       ` Robert A Duff
2003-12-13 16:55         ` Simon Wright
2003-12-13 17:27           ` Dmitry A. Kazakov
2003-12-13  2:44       ` Steve
  -- strict thread matches above, loose matches on Subject: below --
2003-12-23 10:40 amado.alves
2003-12-19 15:53 amado.alves
2003-12-19 23:05 ` Robert A Duff
2003-12-11 16:02 amado.alves
2003-12-11 15:05 ada_wizard
2003-12-11 16:45 ` Robert A Duff
2003-12-11 12:56 amado.alves
2003-12-17 20:25 ` Robert A Duff
2003-12-11 12:43 amado.alves
2003-12-11 12:33 amado.alves
2003-12-10 14:39 amado.alves
2003-12-10  5:46 Simon Wright
2003-12-10 18:12 ` Jeffrey Carter
2003-12-11 16:10   ` Martin Krischik
2003-12-10 20:59 ` Simon Wright
replies disabled

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