comp.lang.ada
 help / color / mirror / Atom feed
From: anon@anon.org (anon)
Subject: Re: Learning Ada
Date: Thu, 09 Jul 2009 22:28:07 GMT
Date: 2009-07-09T22:28:07+00:00	[thread overview]
Message-ID: <X9u5m.431281$4m1.337519@bgtnsc05-news.ops.worldnet.att.net> (raw)
In-Reply-To: h2tun7$bpp$1@news.albasani.net

If Ada RM A.2 ( 4 ), applied here, then Adacore / GNAT would not allow one 
to compile the a Standard package. When compiling the Ada.* you must use 
"-gnatpg", command option, but compiling the Standard package is as easy 
as compiling any non-vendor or Ada package.

Actually I wrote the complete Standards package for both Ada 83 and 95 
including a body that use System.Machine_Code for the routines base on the 
Ada 83 and Ada 95 specs.  

And these routines could be used for embeded processors, but the main code 
would still be generated by the GCC backend.

In <h2tun7$bpp$1@news.albasani.net>, "Frank J. Lhota" <FrankLho.NOSPAM@rcn.com> writes:
>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"




  reply	other threads:[~2009-07-09 22:28 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
2009-07-09 22:28                             ` anon [this message]
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