comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada Popularity: Comparison of Ada/Charles with C++ STL (and Perl)
Date: Mon, 4 Oct 2004 12:24:37 +0200
Date: 2004-10-04T12:24:37+02:00	[thread overview]
Message-ID: <1xc5ofa4jkd2x.ejgxx5gcwy4l$.dlg@40tude.net> (raw)
In-Reply-To: cjpm1j$7ep$1@nemesis.news.tpi.pl

On Sun, 3 Oct 2004 21:35:22 +0200, Robert Kawulak wrote:

>> The problem is fundamental, if vector<A> and vector<B> as
>> types have nothing in common, then it is difficult to write a program
>> which can work with both. It is all about generic programming.
> 
>     But I'm still trying to figure out what problems does this entail (and
> why, in this respect, Ada arrays could be better than all array types in
> C++, which is what this discussion was about).

I didn't say that Ada get it solved. I think that Ada is on the right way
there, while C++ moves in the opposite direction.

> My understanding is that
> vector<A> and vector<B> (or Ada arrays of elements of these types) *must* be
> different types because A and B are different types.

They need not to be. To be honest, in Ada you cannot put a constraint on
array's element type, but you can do it for the index type. For the
discussion, there is no much difference what to constrain/derive from. When
you use a template, say: <int From_Index, int To_Index, class Element>,
then different values of From_Index, To_Index constitute different types of
instances. It is unacceptable. This was solved in Ada 83. It has a notion
of array type which can be constrained (the set of all possible constraints
gives that desired ARRAY types set):

type String is array (Integer range <>) of Character;
subtype Subrange is Integer range 1..20;
subtype Substring is String (Subrange);
   -- String and Substring are related types. You can program for Substring
   -- in terms of String.

Yes, Ada does not have it for array elements. You cannot derive from the
element type and get the array of derived elements a subtype of the array
of element. Neither you can dispatch on subtypes etc. But if you have
arrays you could fix it some day...

> Of course they've got
> some common properties and methods independent on the type of held elements
> like the number of elements, but I don't see any difficulties connected with
> this - all vector classes have the same interface,

This "same interface" is not a language object. It is a fiction, which
cannot be described in language terms independently on its implementation.
So you physically unable to program in terms of this interface. It simply
does not exist. What can you do with vector<>? Operator[] defined on it is
not a function. It is a template function. You cannot call it outside of
another template. That template must in turn have the vector's element type
as a parameter etc.

> so it's easy to write a code that copes with vectors of
> elements of different types.

Really? Write code which reads from the stream a type X (from some defined,
but large set of types) and then returns empty vector<X>.

>     Could you clarify this (or at least give some links concerning generic
> programming issues you are writing about)?

Stepanov? (:-))

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



  reply	other threads:[~2004-10-04 10:24 UTC|newest]

Thread overview: 229+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-22  0:21 Ada Popularity: Comparison of Ada/Charles with C++ STL (and Perl) Kevin Cline
2004-09-22  2:16 ` Pylinius
2004-09-22  8:50 ` Björn Persson
2004-09-22 13:38   ` Benjamin Ketcham
2004-09-22 14:07     ` Hyman Rosen
2004-09-22 15:16     ` Cesar Rabak
2004-09-23  8:22     ` Kevin Cline
2004-09-23 10:52     ` Anders Wirzenius
2004-09-23 10:54       ` stephane richard
2004-09-23 11:17       ` Jean-Pierre Rosen
2004-09-23 11:47       ` Marius Amado Alves
2004-09-23 13:34         ` Anders Wirzenius
2004-09-23 16:53           ` Warren W. Gay VE3WWG
2004-09-23 18:30           ` Kevin Cline
2004-09-23 19:00             ` Marius Amado Alves
2004-09-24  6:04               ` [OT]Screen ergonomics, was " Anders Wirzenius
2004-09-26  7:22               ` Kevin Cline
2004-09-23 17:19         ` Cesar Rabak
2004-09-23  8:51   ` Kevin Cline
2004-09-23 11:01     ` Georg Bauhaus
2004-09-23 15:59       ` Matthew Heaney
2004-09-23 16:38       ` Kevin Cline
2004-09-24  2:47         ` Matthew Heaney
2004-09-24 13:43           ` Hyman Rosen
2004-09-24 17:47             ` Mark Lorenzen
2004-09-24 18:16               ` Matthew Heaney
2004-09-29 19:29                 ` Mark Lorenzen
2004-09-29 22:44                   ` Matthew Heaney
2004-09-25 14:09             ` Martin Krischik
2004-09-26  7:08           ` Kevin Cline
2004-09-26 15:13             ` Matthew Heaney
2004-09-23 19:10     ` jayessay
2004-09-23 21:13       ` Adam Ruth
2004-09-27  2:12         ` Keith H Duggar
2004-09-27 14:21           ` Adam Ruth
2004-09-27 14:51             ` Chris Humphries
2004-09-27 17:10               ` Adam Ruth
2004-09-27 20:16               ` Keith H Duggar
2004-09-27 21:15                 ` Chris Humphries
2004-09-28  4:46                   ` Keith H Duggar
2004-09-27 20:34             ` Kevin Cline
2004-09-27 21:15               ` Adam Ruth
2004-09-23 23:05     ` Brian May
2004-09-24  3:06       ` Matthew Heaney
2004-09-24  3:52       ` Randy Brukardt
2004-09-24  5:15         ` Matthew Heaney
2004-09-24 19:12         ` Kevin Cline
2004-09-24 20:54           ` Randy Brukardt
2004-09-24 21:23             ` Matthew Heaney
2004-09-27 13:22           ` Chris Humphries
2004-09-27 13:45             ` Chris Humphries
2004-09-27 21:31             ` Kevin Cline
2004-09-27 23:51               ` Brian May
2004-09-28 12:21               ` Chris Humphries
2004-09-26 17:10         ` jayessay
2004-09-26 20:00           ` Georg Bauhaus
2004-09-27 14:45             ` jayessay
2004-09-24  0:19     ` Stephen Leake
2004-09-24 14:54       ` Cesar Rabak
2004-09-22 15:27 ` James Alan Farrell
2004-09-22 21:24   ` Simon Wright
2004-09-23  0:03     ` Brian May
2004-09-23  9:17       ` Kevin Cline
2004-09-23  0:44     ` Jeffrey Carter
2004-09-23 11:08       ` Georg Bauhaus
2004-09-23  8:15     ` Martin Krischik
2004-09-23 16:20       ` Matthew Heaney
2004-09-23 19:23         ` Simon Wright
2004-09-24  7:19         ` Martin Krischik
2004-09-24 16:31           ` Matthew Heaney
2004-09-24 19:24           ` Kevin Cline
2004-09-25 14:04             ` Martin Krischik
2004-09-26 10:36               ` Robert Kawulak
2004-09-26 15:35                 ` Martin Krischik
2004-09-28 17:46                   ` Robert Kawulak
2004-09-29  7:49                     ` Martin Krischik
2004-09-29 12:01                       ` Xenos
2004-09-29 18:16                       ` Robert Kawulak
2004-09-30 15:55                         ` Martin Krischik
2004-09-27 22:22               ` Kevin Cline
2004-09-28  7:51                 ` Martin Krischik
2004-09-29  3:04                   ` Kevin Cline
2004-09-29  6:03                     ` Dale Stanbrough
2004-09-29 13:31                     ` Georg Bauhaus
2004-09-29 13:46                     ` Matthew Heaney
2004-09-30  3:42                       ` Kevin Cline
2004-09-30  7:54                         ` Dale Stanbrough
2004-09-30 16:50                         ` Matthew Heaney
2004-10-01  0:04                           ` Kevin Cline
2004-10-01 12:25                             ` Georg Bauhaus
2004-10-02  7:35                               ` K
2004-10-02 10:00                                 ` Brian May
2004-10-02 20:39                                   ` Kevin Cline
2004-10-03  2:17                                     ` Brian May
2004-10-02 13:40                                 ` Matthew Heaney
2004-10-02 23:33                                 ` Randy Brukardt
2004-10-03 12:47                                   ` Stephen Leake
2004-09-30 19:01                         ` Björn Persson
2004-09-30 23:54                           ` Kevin Cline
2004-10-01 16:11                             ` Björn Persson
2004-10-02  6:48                               ` K
2004-10-02 10:41                                 ` Björn Persson
2004-10-02 13:32                                 ` Matthew Heaney
2004-10-04  9:02                                 ` Ole-Hjalmar Kristensen
2004-09-23  9:00   ` Kevin Cline
2004-09-23 11:27     ` Ole-Hjalmar Kristensen
2004-09-23 19:11       ` Kevin Cline
2004-09-23 21:01         ` Alexander E. Kopilovich
2004-09-26  6:53           ` Kevin Cline
2004-09-26 15:29             ` Alexander E. Kopilovich
2004-09-23 21:54         ` Eric Jacoboni
2004-09-24  9:44         ` Ole-Hjalmar Kristensen
2004-09-24  9:50         ` Georg Bauhaus
2004-09-24 13:47           ` Matthew Heaney
2004-09-24 14:14             ` Dmitry A. Kazakov
2004-09-25 14:17               ` Martin Krischik
2004-09-27  8:12                 ` Dmitry A. Kazakov
2004-09-27 12:59                   ` Georg Bauhaus
2004-09-27 13:53                     ` Dmitry A. Kazakov
2004-09-26  7:17               ` Kevin Cline
2004-09-27  8:19                 ` Dmitry A. Kazakov
2004-09-27 13:03                   ` Georg Bauhaus
2004-09-27 14:00                     ` Dmitry A. Kazakov
2004-09-24 16:28           ` Kevin Cline
2004-09-24 17:45             ` Georg Bauhaus
2004-09-24 20:14             ` Matthew Heaney
2004-09-24 20:10               ` Frank J. Lhota
2004-09-27  8:29                 ` Dmitry A. Kazakov
2004-09-26  7:13               ` Kevin Cline
2004-09-26 15:15                 ` Matthew Heaney
2004-09-27 14:31                   ` Kevin Cline
2004-09-27 15:05                     ` Dmitry A. Kazakov
2004-09-28  4:22                       ` Kevin Cline
2004-09-28  8:20                         ` Dmitry A. Kazakov
2004-09-28 23:26                           ` Robert Kawulak
2004-09-29 12:19                             ` Dmitry A. Kazakov
2004-09-30 18:52                               ` Robert Kawulak
2004-10-01  7:55                                 ` Dmitry A. Kazakov
2004-10-03 19:35                                   ` Robert Kawulak
2004-10-04 10:24                                     ` Dmitry A. Kazakov [this message]
2004-10-06 17:28                                       ` Robert Kawulak
2004-10-07  8:24                                         ` Dmitry A. Kazakov
2004-10-10 21:09                                           ` Robert Kawulak
2004-10-11  8:08                                             ` Dmitry A. Kazakov
2004-10-15  9:34                                               ` Robert Kawulak
2004-10-15 16:58                                                 ` Martin Krischik
2004-09-29 15:44                             ` Matthew Heaney
2004-09-30 18:27                               ` Robert Kawulak
2004-09-28 17:21                       ` Robert Kawulak
2004-09-29  1:38                         ` Georg Bauhaus
2004-09-29 18:08                           ` Robert Kawulak
2004-09-30 18:30                             ` Georg Bauhaus
2004-09-29  8:08                         ` Dmitry A. Kazakov
2004-09-29 18:11                           ` Robert Kawulak
2004-09-30  8:57                             ` Dmitry A. Kazakov
     [not found]                               ` <cji06f$17a$2@atlantis.news.tpi.pl>
2004-10-01  8:58                                 ` Dmitry A. Kazakov
2004-10-03 19:53                                   ` Robert Kawulak
2004-10-04 10:15                                     ` Dmitry A. Kazakov
2004-10-04 12:16                                       ` Matthew Heaney
2004-10-04 13:21                                         ` Dmitry A. Kazakov
2004-10-06 17:20                                       ` Robert Kawulak
2004-10-07 10:08                                         ` Dmitry A. Kazakov
2004-10-10 22:21                                           ` Robert Kawulak
2004-10-11  8:46                                             ` Dmitry A. Kazakov
2004-10-15  9:25                                               ` Robert Kawulak
2004-10-15 11:56                                                 ` Dmitry A. Kazakov
2004-10-20 20:06                                                   ` Robert Kawulak
2004-10-21  2:51                                                     ` Kevin Cline
2004-10-21  8:39                                                     ` Dmitry A. Kazakov
2004-10-27 21:41                                                       ` Robert Kawulak
2004-10-01 13:02                                 ` Robert Kawulak
2004-10-28 10:26                                 ` Larry Kilgallen
2004-09-27 16:21                     ` Matthew Heaney
2004-09-28  2:47                       ` Kevin Cline
2004-09-28  4:03                         ` Brian May
2004-09-28  4:46                         ` Matthew Heaney
2004-09-29  3:14                           ` Kevin Cline
2004-09-29  3:50                             ` Matthew Heaney
2004-09-29  3:52                               ` Matthew Heaney
2004-09-29 13:44                             ` Matthew Heaney
2004-09-26  6:32           ` Kevin Cline
2004-09-26 15:05             ` Matthew Heaney
2004-09-27 14:35               ` Kevin Cline
2004-09-23 19:30       ` jayessay
2004-09-23 19:42     ` Alexander E. Kopilovich
2004-09-22 21:05 ` Georg Bauhaus
2004-09-23  9:20   ` Kevin Cline
2004-09-23 16:58     ` Warren W. Gay VE3WWG
2004-09-23  6:24 ` Matthew Heaney
2004-09-23 11:23   ` Jeff C r e e.m
2004-09-23 11:35     ` Georg Bauhaus
2004-09-23 17:05       ` Pascal Obry
2004-09-23 17:07       ` Pascal Obry
2004-09-23 18:30     ` Matthew Heaney
2004-09-23 19:31       ` Simon Wright
2004-09-24  0:09         ` Stephen Leake
2004-09-25 10:41           ` Simon Wright
2004-09-23 18:24   ` Kevin Cline
2004-09-23 17:12 ` Dan Andreatta
2004-09-23 18:10   ` Pascal Obry
2004-09-23 19:21     ` Eric Jacoboni
2004-09-23 19:31       ` Ed Falis
2004-09-23 19:37         ` Eric Jacoboni
2004-09-24 20:09       ` Kevin Cline
2004-09-25  0:18         ` Eric Jacoboni
2004-09-26  6:37           ` Kevin Cline
2004-09-26 14:57             ` Matthew Heaney
2004-09-23 19:24     ` Eric Jacoboni
2004-09-23 21:30       ` Eric Jacoboni
2004-09-26 11:44         ` Jacob Sparre Andersen
2004-09-26 17:02         ` jayessay
2004-09-24  8:26       ` Ole-Hjalmar Kristensen
2004-09-23 22:08     ` Anders Gidenstam
2004-09-24  8:10     ` Ole-Hjalmar Kristensen
2004-09-24 17:43       ` Dan Andreatta
2004-09-24 17:40     ` Dan Andreatta
2004-09-24 18:50       ` Pascal Obry
2004-09-23 22:34 ` Randy Brukardt
2004-09-23 23:11   ` Dale Stanbrough
2004-09-24  1:57     ` Matthew Heaney
2004-09-24  6:32       ` Dale Stanbrough
2004-09-24 21:01         ` Randy Brukardt
2004-09-24  0:43   ` Jeffrey Carter
2004-09-24  1:51   ` Matthew Heaney
2004-09-24 20:21     ` Kevin Cline
2004-09-26 11:09 ` Jacob Sparre Andersen
2004-09-27 13:49   ` Björn Persson
2004-10-12  5:21 ` Ada Popularity: Comparison of languages Brian May
2004-10-12 11:43   ` Peter Hermann
replies disabled

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