comp.lang.ada
 help / color / mirror / Atom feed
From: "Mike Mohr" <nospam@nowhere.com>
Subject: Re: ada vs. cpp
Date: Tue, 09 Oct 2001 14:56:45 GMT
Date: 2001-10-09T14:56:45+00:00	[thread overview]
Message-ID: <NeEw7.184211$w7.28259655@news02.optonline.net> (raw)
In-Reply-To: 9psrqv016j9@drn.newsguy.com


"Robert*@" <Robert_member@newsguy.com> wrote in message
news:9psrqv016j9@drn.newsguy.com...
> In article <dFlw7.173483$w7.26404906@news02.optonline.net>, "Mike says...
> >
>
> >
> >> There is nothing equivelant in C++ to declaring a new type integer
> >> with restricted range. It is simply not in the C++ language.
> >

Your original reply didn't say anything about type checking,
your original reply objected to the fact that the ranges were
hardcoded so I responded with that in mind.

I fixed the exact problem you cited.

  "The difference is that in Ada the range itself is a separate type
declaration.
   So, one can change the range type in one place and have it propgate all
   over. With your attempt, you hardcoded the range using magic numbers in
   the variable declaration itself, so if the same range is to be used
   somewhere else in the code, or in different variable declaration, you
   need to type it there too manually."

In my response, I have shown how to "change the range in one place
and have it propagate all over." yet in the popular style of this newsgroup
you have added additional requirements to the problem only after I
have presented a complete answer to the original problem :)

> In ada, when you declare a type of a restricted range, the compiler and
run-time
> will check that variables of such type can have values in that range only.
>

      subtype Code is Positive range 1 .. 4;
      subtype Arg  is Positive range 6 .. 8;

      V2 : constant String := V1 (Arg) & '-' & V1 (Code);

By all accounts I am a new Ada programmer, so I am a little confused
by the syntax.  It isn't clear to me how Code, and Arg function in the
expression.

Do strings effectively have a ( ) operator which takes a range as an
argument?

I read V1 (Arg) as V1.substring(Arg) in pseudo code.

Arg seems to be a value rather than a type.
Is range effectively a parameterized type?

Perhaps this is wrong, if so please show me what is
really happening.  If my guess is accurate please show
me how static/dynamic checking would be done in the
first (Ada) case.  What I want is a description or
examples of those cases which would raise an error.

You also point out that

"There is nothing equivelant in C++ to declaring a new
type integer with restricted range"

I understand your point, yet it isn't clear to me in the
original example, what specifically is an integer.





  reply	other threads:[~2001-10-09 14:56 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-03 20:42 ada vs. cpp Ralph M�ritz
2001-10-03 20:56 ` Preben Randhol
2001-10-03 21:07   ` Ralph M�ritz
2001-10-04  5:08     ` Pi
2001-10-04  5:07       ` Ed Falis
2001-10-04  5:13       ` David Starner
2001-10-04 10:57         ` Preben Randhol
2001-10-04 13:18           ` Marin David Condic
2001-10-04 16:30             ` Pascal Obry
2001-10-04 17:05               ` Marin David Condic
2001-10-05 15:22               ` Mike Mohr
2001-10-06  9:15                 ` Pascal Obry
2001-10-06 11:23                   ` MM
2001-10-06 12:27                     ` Marc A. Criley
2001-10-06 16:53                     ` James Rogers
2001-10-09 13:51                     ` Marin David Condic
2001-10-09 14:13                       ` James Rogers
2001-10-09 14:25                         ` Marin David Condic
2001-10-10 16:46                           ` Warren W. Gay VE3WWG
2001-10-09 15:10                         ` Robert*
2001-10-09 16:17                           ` James Rogers
2001-10-11 12:03                             ` David Botton
2001-10-09 14:43                       ` Robert*
2001-10-09 15:18                         ` Wes Groleau
2001-10-09 18:21                           ` Marin David Condic
2001-10-09 20:37                             ` James Rogers
2001-10-09 16:21                         ` James Rogers
2001-10-09 16:43                           ` Lutz Donnerhacke
2001-10-10  5:18                         ` Richard Riehle
2001-10-10 13:21                           ` Marin David Condic
2001-10-10 14:15                           ` Wes Groleau
2001-10-22  2:07                             ` David Thompson
2001-10-22 13:35                               ` Wes Groleau
2001-10-22 19:14                                 ` Ole-Hjalmar Kristensen
2001-10-23  5:40                               ` Richard Riehle
2001-10-09 15:06                       ` Ole-Hjalmar Kristensen
     [not found]                       ` <9pv2f20jf4@drn.newsguy <3BC3240B.96703A8B@worldnet.att.net>
2001-10-10  5:47                         ` Simon Wright
2001-10-06 22:38                   ` Frode Tennebø
2001-10-06 23:48                     ` mike
2001-10-07  7:31                       ` Pascal Obry
2001-10-08 14:55                   ` Mike Mohr
2001-10-08 15:07                     ` Mike Mohr
2001-10-08 16:34                     ` Robert*
2001-10-08 17:47                       ` Mike Mohr
2001-10-08 18:38                         ` Robert*
2001-10-09 14:56                           ` Mike Mohr [this message]
2001-10-09 15:20                             ` Wes Groleau
2001-10-09 16:14                             ` Steven Deller
2001-10-09 16:55                             ` Pascal Obry
2001-10-08 19:19                         ` James Rogers
2001-10-09  8:17                         ` Pascal Obry
2001-10-09 15:46                         ` Ted Dennison
2001-10-09 17:35                           ` Mike Mohr
2001-10-09 18:45                             ` Ted Dennison
2001-10-08 18:02                   ` Ted Dennison
2001-10-09  4:59               ` David Thompson
2001-10-04 13:16         ` Ted Dennison
2001-10-05  7:50         ` Dmitry Kazakov
2001-10-05 13:31           ` David Starner
2001-10-05 15:34             ` Ted Dennison
2001-10-05 17:49               ` David Starner
2001-10-05 18:54                 ` Wes Groleau
2001-10-05 22:02                   ` James Rogers
2001-10-05 22:35                     ` Wes Groleau
2001-10-06  3:44                   ` David Starner
2001-10-08  8:18             ` Dmitry Kazakov
2001-10-08 13:33               ` David Starner
2001-10-09 13:36                 ` Wes Groleau
2001-10-09 15:29                   ` David Starner
2001-10-10 11:01                     ` Dmitry Kazakov
2001-10-10 11:20                       ` Lutz Donnerhacke
2001-10-10 12:14                         ` Robert*
2001-10-10 13:31                           ` Lutz Donnerhacke
2001-10-10 14:36                         ` Steven Deller
2001-10-10 14:59                           ` Wes Groleau
2001-10-10 15:15                           ` Lutz Donnerhacke
2001-10-10 15:16                           ` Dmitry Kazakov
2001-10-10 16:10                             ` Florian Weimer
2001-10-11  8:02                               ` Dmitry Kazakov
2001-10-10 15:59                         ` Brian Rogoff
2001-10-10 18:50                           ` David Starner
2001-10-11  9:28                             ` Lutz Donnerhacke
2001-10-10 14:03                       ` David Starner
2001-10-10 16:40                         ` Ted Dennison
2001-10-10 17:53                         ` Pascal Obry
2001-10-10 23:11                           ` David Starner
2001-10-11  3:00                             ` James Rogers
2001-10-22  2:10                               ` David Thompson
2001-10-05 13:52           ` James Rogers
2001-10-05 14:28             ` Larry Kilgallen
2001-10-05 14:07           ` Ted Dennison
2001-10-16  4:52           ` David Thompson
2001-10-16 10:21             ` Dmitry Kazakov
2001-11-13  2:12               ` David Thompson
2001-11-13 10:21                 ` Dmitry A. Kazakov
2001-11-13 16:05                   ` Ted Dennison
2001-11-14  9:29                     ` Dmitry A. Kazakov
2001-10-04  6:01       ` mike
2001-10-04  8:42         ` Pi
2001-10-04 12:22           ` James Rogers
2001-10-04 17:50         ` perl Warren W. Gay VE3WWG
2001-10-04 19:27           ` perl maa
2001-10-05 12:15             ` perl Georg Bauhaus
2001-10-04 19:28           ` perl Larry Kilgallen
2001-10-05  7:24           ` perl Lutz Donnerhacke
2001-10-05 12:38             ` perl Georg Bauhaus
2001-10-06 19:00               ` perl Florian Weimer
2001-10-04 16:26       ` ada vs. cpp Pascal Obry
2001-10-04 18:47         ` David Botton
2001-10-04 22:29         ` Jacob Sparre Andersen
2001-10-04 22:31           ` Wes Groleau
2001-10-04 22:52           ` Preben Randhol
2001-10-05 12:43             ` Georg Bauhaus
2001-10-05 13:09               ` Preben Randhol
2001-10-06  1:05         ` Mike Silva
2001-10-04 13:50     ` Ted Dennison
2001-10-03 21:03 ` Marin David Condic
2001-10-04  2:40 ` Jeff
2001-10-05  1:23 ` Adrian Hoe
2001-10-05  4:34   ` mike
2001-10-05  4:42   ` mike
2001-10-05 11:13     ` Adrian Hoe
  -- strict thread matches above, loose matches on Subject: below --
2001-10-12 20:54 Richard Pinkall-Pollei
2001-10-12 21:28 ` Vector..
2001-10-13  7:07   ` Dale Stanbrough
2001-10-14  8:15   ` Jean-Marc Bourguet
2001-10-15 10:04   ` Nexus
2001-10-15 12:18   ` Lutz Donnerhacke
2001-10-15 21:25     ` Florian Weimer
2001-10-22  2:08       ` David Thompson
2001-10-22  7:04         ` Florian Weimer
2001-10-22  7:31           ` Lutz Donnerhacke
2001-11-13  2:12           ` David Thompson
2001-10-16  8:47     ` Jean-Marc Bourguet
2001-10-16 10:08       ` Lutz Donnerhacke
2001-10-16 11:07         ` Jean-Marc Bourguet
2001-10-16 12:00           ` Lutz Donnerhacke
2001-10-16 19:08           ` Darren New
2001-10-16 15:46         ` Florian Weimer
2001-10-16 19:31           ` Stephen Leake
2001-10-16 20:13             ` Florian Weimer
2001-10-16 21:42               ` Stephen Leake
2001-10-17  8:37                 ` Florian Weimer
2001-10-17  8:45                   ` Lutz Donnerhacke
2001-10-16 13:45       ` Ted Dennison
2001-10-16 13:54         ` Jean-Marc Bourguet
2001-10-16 13:54         ` Lutz Donnerhacke
2001-10-15 13:44   ` Marin David Condic
replies disabled

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