comp.lang.ada
 help / color / mirror / Atom feed
From: Matthew Heaney <matthewjheaney@earthlink.net>
Subject: Re: Usage of Interfaces with Ada 95
Date: Tue, 30 Sep 2003 12:31:28 GMT
Date: 2003-09-30T12:31:28+00:00	[thread overview]
Message-ID: <uoex25ude.fsf@earthlink.net> (raw)
In-Reply-To: l2fn41-0j8.ln1@boavista.snafu.de

Michael Erdmann <Michael.Erdmann@snafu.de> writes:

> I assume, that the procedure Generic_Algorithm is containing some kind
> of implementation of an iterator based on the input parameters of the
> generic?

Well, technically the iterator itself is implemented elsewhere.  The
generic algorithm doesn't care.  It just uses the iterator, like this:

procedure Generic_Algorithm (First, Back : IT) is
   I : IT := First;
begin
   while I /= Back loop
      ... -- whatever
      Process (I);
      ... -- whatever
      I := Succ (I);
   end loop;
end Generic_Algorithm;


> You are right, this provides a standarized interface, but i guess the
> procedure Generic_Algorithm contains some kind of implementation of an
> iteration based on the methods specified in the input?

The Generic_Algorithm contains some kind of implementation of an
algorithm, not an iterator.  The algorithm uses the iterator to
implement the algorithm.


>I think the is a different view on the topic by defining a
>functionality of an interface, providing a generic implementation which
>defines the interface for the programmer.

Yes, the generic algorithm specifies what it requires of the iterator.
Any iterator satisfying those (logical) properties can be used, as we
saw in the example.


> This was exactly what i dont like to do. I dont like to spent the
>effort of breaking down a concept into a generic implementation. This
>is the reason why i like to use interfaces.

Well, that's not static polymorphism.  It's dynamic polymorphism -- or
at least it's type derivation.

I much don't like inheritance, but you seem prefer it.  Vive la
difference, comme on dit en France (et aux Etats Unis, aussi).



  parent reply	other threads:[~2003-09-30 12:31 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-26 16:36 Usage of Interfaces with Ada 95 Michael Erdmann
2003-09-26 16:50 ` chris
2003-09-26 16:55 ` Hyman Rosen
2003-09-26 19:10   ` Michael Erdmann
2003-09-26 20:37     ` Hyman Rosen
2003-09-27 15:05       ` Michael Erdmann
2003-09-28  2:11         ` Matthew Heaney
2003-09-29  2:25         ` George Shapovalov
2003-09-28  2:14   ` Matthew Heaney
2003-09-28  8:28     ` Michael Erdmann
2003-09-28 14:33       ` Matthew Heaney
2003-09-28 15:09         ` Michael Erdmann
2003-09-28 21:50           ` Matthew Heaney
2003-09-30  4:57             ` Michael Erdmann
2003-09-30 10:02               ` Mário Amado Alves
2003-09-30 12:31               ` Matthew Heaney [this message]
2003-09-30 19:58                 ` Michael Erdmann
2003-09-28 17:10         ` Simon Wright
2003-09-28 21:52           ` Matthew Heaney
2003-09-28 21:58           ` Matthew Heaney
2003-09-29 19:37             ` Georg Bauhaus
2003-09-29 19:45               ` Georg Bauhaus
2003-09-30  7:10               ` Preben Randhol
2003-09-29 20:11             ` Simon Wright
2003-09-29 22:56               ` Matthew Heaney
2003-09-30 14:53                 ` Matthew Heaney
2003-09-30 16:13                   ` Preben Randhol
2003-09-29 13:49           ` Matthew Heaney
2003-09-28 18:22       ` Robert I. Eachus
2003-09-29  3:02         ` Hyman Rosen
2003-09-30  3:11           ` Robert I. Eachus
2003-09-30 13:38             ` Hyman Rosen
2003-09-30 21:46               ` Robert I. Eachus
2003-09-30 22:10                 ` Hyman Rosen
2003-10-01  2:30                   ` Robert I. Eachus
2003-10-01  2:41                   ` Robert I. Eachus
2003-10-01 13:21                     ` Hyman Rosen
2003-10-01 17:01                       ` Robert I. Eachus
2003-10-01 18:46                       ` Matthew Heaney
2003-09-29 14:52       ` Stephen Leake
2003-09-29 23:00         ` Matthew Heaney
2003-09-30 12:49           ` Marin David Condic
2003-09-30 23:48             ` Matthew Heaney
replies disabled

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