comp.lang.ada
 help / color / mirror / Atom feed
From: "Frank J. Lhota" <FrankLho.NOSPAM@rcn.com>
Subject: Re: Learning Ada
Date: Mon, 06 Jul 2009 18:43:45 -0400
Date: 2009-07-06T18:43:45-04:00	[thread overview]
Message-ID: <h2tun7$bpp$1@news.albasani.net> (raw)
In-Reply-To: <T0t4m.423818$4m1.53185@bgtnsc05-news.ops.worldnet.att.net>

anon wrote:
> Yes, I did redefine apart of Standard. Found this out back in the mid 1990 
> while testing GNAT 3.0x for a number of projects. Its also, one way (not the 
> best, but it is quick) of porting code from a 32-bit system down to a 16 or 
> 8 bit system. Like using Intel Core i7 system to write code for an Intel 
> 8086 system, which can use the same basic (non-protective mode) 
> instruction set. 

No, you did not re-define a part of Standard. Keep in mind that all of 
the compilation units you write is enclosed in the Standard package. As 
a result, every Ada name can be expanded to something of the form 
"Standard.*".

When you wrote the package Standard as presented above, what you really 
did was add a package named Standard *within* the pre-defined package 
Standard, i.e. the result was something like this:

-- Ada LRM Standard
package Standard is

     ...
     type Integer is range ...;
     ...

     -- Your Standard package
     package Standard is
         type INTEGER is range - 2 ** 63 .. ( 2 ** 63 ) - 1 ;
     end Standard;

end Standard;

In other words, you've created the new type Standard.Standard.Integer, 
which is a separate type from Standard.Integer.

> Also, rewriting any Ada package is allowable within the scope of the RM 
> (in some implementation it maybe required). And if I add a body for the 
> Standard package and uncommented the an operators I could of made the 
> operator do what I wanted it to do. Like having all Boolean operators 
> return FALSE. 

LRM A.2 (4) specifically prohibit the compilation of a child of package 
Ada in standard mode. I believe that some implementations would squawk 
if you tried to replace parts of System, especially since doing so could 
break other pre-defined units.

> This process does not hide the built-in Standard package, its still there for 
> the system to handle the other types, such as the Character or 
> Wide_Character set, which can be a headache to define.

Well, it does create some confusion. I would definitely *not* recommend 
naming a unit Standard.

> 
> In <ba7f8fc3-e386-49cc-a1fb-e53f7e1f04bf@d32g2000yqh.googlegroups.com>, AdaMagica <christoph.grein@eurocopter.com> writes:
>> Oh my dear anon, you are so wrong again.
>>
>>> package STANDARD is
>>>
>>> =A0 -- The universal type universal_integer is predefined. =A0
>>>
>>> =A0 type INTEGER is range - 2 ** 63 .. ( 2 ** 63 ) - 1 ;
>>>
>>> end STANDARD;
>> You do *not* redefine Standard with this declaration, you simply hide
>> it.
>>
>> with Standard;
>>
>> procedure Temp is  -- Here you will get into troubled water.
>>
>>  X: Integer;  -- this is still the integer from the predefined
>> package Standard
>>  Y: STANDARD.Integer;  -- this is your INTEGER
>>
>>  use Standard;
>>
>>  Z: Integer :=3D 2;  -- oh lord, what's this now?
>>
>>  -- I'm not sure and I'm reluctant to do the RM exegesis to find out.
>> I *guess* it's your INTEGER;
>>
>>  I: Integer :=3D Z**3;  -- subtype of 3 is still the Integer defined in
>>                       -- the predefined Standard you've hidden
>>  J: Integer :=3D Z**Z;  -- This should then be illegal because the
>> subtype of the right operand of **
>>                       -- must be the one from the hidden Standard.
>>
>> end Temp;
>>
>> Point is: You cannot redefine Standard! Full stop.
>>
>> I invite you to find the relevant paragraphs in the RM which state
>> what will happen when you define a package named Standard.
>>
>> And please be careful to not mix up a subtype and the type of the
>> subtype and the type of numeric literals. They are all different.
> 


-- 
"All things extant in this world,
Gods of Heaven, gods of Earth,
Let everything be as it should be;
Thus shall it be!"
- Magical chant from "Magical Shopping Arcade Abenobashi"

"Drizzle, Drazzle, Drozzle, Drome,
Time for this one to come home!"
- Mr. Wizard from "Tooter Turtle"



  parent reply	other threads:[~2009-07-06 22:43 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-28 15:36 unsigned type Rob Solomon
2009-06-28 15:45 ` Florian Weimer
2009-06-28 15:48 ` Albrecht Käfer
2009-06-28 17:56 ` anon
2009-06-28 19:17   ` Ludovic Brenta
2009-06-28 23:08     ` anon
2009-06-29  0:19       ` tmoran
2009-06-29  8:00         ` anon
2009-06-29  9:56           ` Jean-Pierre Rosen
2009-06-29 10:21             ` Ludovic Brenta
2009-06-29 11:23               ` sjw
2009-06-29 12:07                 ` Jean-Pierre Rosen
2009-06-29 20:06                 ` anon
2009-06-29 19:31               ` anon
2009-06-29 21:49                 ` Georg Bauhaus
     [not found]                 ` <zuKdneNYxfFNLNTXnZ2dnUVZ_t2dnZ2d@earthlink.com>
2009-06-30 11:29                   ` anon
2009-06-30 12:19                     ` Ludovic Brenta
2009-06-29 20:19             ` anon
2009-06-29 20:41               ` Ludovic Brenta
2009-06-29 22:15               ` Georg Bauhaus
2009-06-29 23:08               ` Adam Beneschan
2009-06-29 23:11               ` Adam Beneschan
2009-06-30 12:39               ` Martin
2009-06-29 10:25           ` Georg Bauhaus
2009-06-29 20:02             ` anon
2009-06-29 22:08               ` Georg Bauhaus
2009-06-30 23:01                 ` Randy Brukardt
2009-06-30 13:46               ` Jean-Pierre Rosen
2009-06-30 15:22                 ` Adam Beneschan
2009-06-30 15:59                   ` Albrecht Käfer
2009-06-30 16:59                     ` Adam Beneschan
2009-06-30 17:44                       ` Albrecht Käfer
2009-06-30 18:13                         ` Robert A Duff
2009-06-30 18:16                           ` Albrecht Käfer
2009-06-30 23:48                       ` anon
2009-07-01  1:39                         ` Adam Beneschan
2009-07-02 19:04                           ` anon
2009-07-02 19:49                           ` anon
2009-07-02 21:37                             ` Adam Beneschan
2009-07-03  1:42                             ` anon
2009-07-03  2:10                               ` Adam Beneschan
2009-07-03  7:07                             ` Jean-Pierre Rosen
2009-07-03 20:53                               ` anon
2009-07-03 21:24                                 ` Georg Bauhaus
2009-07-04  9:09                                   ` anon
2009-07-04 13:43                                     ` Georg Bauhaus
2009-07-06  9:04                                     ` AdaMagica
2009-07-03 21:46                                 ` Adam Beneschan
2009-07-04 12:39                                   ` Martin
2009-07-01  8:09                   ` Jean-Pierre Rosen
2009-07-01 15:08                     ` Albrecht Käfer
2009-07-11 14:40           ` Hibou57 (Yannick Duchêne)
2009-07-11 17:18             ` sjw
2009-07-11 18:15               ` Hibou57 (Yannick Duchêne)
2009-07-11 20:20             ` anon
2009-07-12 17:57               ` Samuel Tardieu
2009-07-12 18:24                 ` AdaMagica
2009-07-13 22:03                 ` anon
2009-07-14  7:58                   ` Martin
2009-07-16 13:54                     ` anon
2009-07-16 14:41                       ` Martin
2009-07-16 15:12                         ` Adam Beneschan
2009-07-11 14:43           ` Hibou57 (Yannick Duchêne)
2009-07-11 15:22             ` Albrecht Käfer
2009-06-29  8:42       ` Martin
2009-06-29  8:54         ` Dmitry A. Kazakov
2009-06-29 10:10           ` Martin
2009-06-29 12:34             ` Dmitry A. Kazakov
2009-06-29 19:26             ` anon
2009-06-29 23:02               ` Martin
2009-06-29 19:47           ` anon
2009-06-30  8:31             ` Ludovic Brenta
2009-06-28 19:54   ` tmoran
2009-06-28 22:34     ` Gary Scott
2009-06-28 23:15       ` John B. Matthews
2009-06-28 23:21       ` anon
2009-06-29  7:18       ` Dmitry A. Kazakov
2009-06-29  9:52         ` Georg Bauhaus
2009-06-29 12:43           ` Dmitry A. Kazakov
2009-06-29 13:36     ` Rob Solomon
2009-06-29 14:03       ` Robert A Duff
2009-06-29 14:13       ` Georg Bauhaus
2009-06-29 14:18       ` Ludovic Brenta
2009-06-29 15:40         ` Robert A Duff
2009-07-03  1:41         ` Rob Solomon
2009-07-03  7:12           ` Learning Ada (Was: unsigned type) Jacob Sparre Andersen
2009-07-03  8:38             ` Learning Ada Peter Hermann
2009-07-03  9:44               ` Georg Bauhaus
2009-07-03 22:20             ` Learning Ada (Was: unsigned type) anon
2009-07-04 14:53               ` Georg Bauhaus
2009-07-05 23:21                 ` anon
2009-07-06  0:05                   ` Ludovic Brenta
2009-07-06  0:19                   ` Learning Ada Albrecht Käfer
2009-07-06  2:50                     ` anon
2009-07-06  6:18                       ` AdaMagica
2009-07-06  7:47                         ` Jean-Pierre Rosen
2009-07-06 20:21                         ` anon
2009-07-06 21:08                           ` Georg Bauhaus
2009-07-06 22:43                           ` Frank J. Lhota [this message]
2009-07-09 22:28                             ` anon
2009-07-10  6:23                               ` AdaMagica
2009-07-06 10:53                   ` Learning Ada (Was: unsigned type) Georg Bauhaus
2009-07-06 19:34                     ` anon
2009-07-06 20:29                       ` Learning Ada Albrecht Käfer
2009-07-06 21:04                       ` Learning Ada (Was: unsigned type) Georg Bauhaus
2009-07-07 19:25                       ` sjw
2009-07-06 23:15                   ` Randy Brukardt
2009-07-07 15:29                     ` Adam Beneschan
2009-07-09  0:15                       ` Randy Brukardt
2009-07-09 15:26                         ` Adam Beneschan
2009-06-29 15:37       ` unsigned type Adam Beneschan
2009-07-06 20:20       ` Dave
2009-06-29 16:51 ` Martin Krischik
  -- strict thread matches above, loose matches on Subject: below --
2020-09-15 10:36 Learning Ada Jack Davy
2020-09-15 14:31 ` Anders Wirzenius
2020-09-15 15:07   ` Jack Davy
2020-09-15 15:54     ` Ludovic Brenta
2020-09-15 17:01 ` Simon Wright
2020-09-15 17:07   ` Simon Wright
2020-09-15 19:03     ` Jack Davy
2020-09-15 19:28       ` Gautier write-only
2020-09-15 23:00       ` Jerry Petrey
2020-09-16  1:23       ` Paul Rubin
2020-09-16  7:13         ` Jack Davy
2020-09-16  7:32           ` Jack Davy
2020-09-16  9:13           ` Gautier write-only
2020-09-16 10:55           ` Ludovic Brenta
2020-09-16 11:09             ` Dmitry A. Kazakov
2020-10-02 18:43               ` gautier...@hotmail.com
2020-10-03  6:43                 ` Dmitry A. Kazakov
2020-10-05 18:36                   ` Shark8
2020-10-17 19:28                   ` antispam
2020-10-17 22:47                     ` Randy Brukardt
2020-10-18  6:45                       ` Dmitry A. Kazakov
2020-09-16 15:01           ` Jeffrey R. Carter
2020-09-18  6:53             ` Mart van de Wege
2020-09-18 10:00               ` Jeffrey R. Carter
2020-09-16 21:29           ` Paul Rubin
2020-10-06  4:06           ` andrew...@gmail.com
2020-10-06  7:32             ` Jack Davy
2020-10-17 23:02               ` mgr
2020-10-22 10:32                 ` Jeffrey R. Carter
2010-07-24 14:21 Frederick Williams
2010-07-24 16:21 ` Simon Wright
2010-07-25 20:33 ` mockturtle
     [not found] <36841f24.293012@news.ptd.net>
1998-12-25  0:00 ` learning ada LeakyStain
1998-12-26  0:00   ` David Botton
1989-06-15  1:48 Learning ADA Krishan M Nainani
1989-06-15 14:19 ` Rosa Weber
1985-09-06 15:10 Learning Ada Marty Sasaki
     [not found] <332@harvard.UUCP>
1985-09-04 16:07 ` richw
1985-09-03  2:46 Marty Sasaki
replies disabled

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