From: bill@valiant.gmrc.gecm.com (R.A.L Williams)
Subject: An observation of Ada (may offend)
Date: 1995/03/29
Date: 1995-03-29T00:00:00+00:00 [thread overview]
Message-ID: <3lbkpv$iqv@miranda.gmrc.gecm.com> (raw)
In article <1995Mar17.144930@lglsun.epfl.ch> Robb Nebbe wrote:
: In article <3kbkm1$41o@miranda.gmrc.gecm.com>, bill@valiant.gmrc.gecm.com (R.A.L Williams) writes:
: ...
: |> b. No bit level manipulation (fixed in Ada95 but only for unsigned
: |> ie. mod INTEGERs, I can't test a sign bit, not that I need to) HCTBAEL.
: It is trivial to write a generic package providing bit manipulation on
: arbitrary integer types in Ada 83.
What do you mean?
One approach is to hack something together, ie. shift implemented as
multiply/divide, and implemented as something very complex involving
subtraction etc. (unpleasant)
The other approach is to define BIT a derived type of INTEGER, WORD
as an array of BIT's and use a representation clause to try to force
this down to one bit per 'bit'. The trouble with this is that there
is no natural coversion to/from integer. Another problem may be that
not all compilers (at least the last time I used Ada 83) actually
*implement* representation clauses. They're all meant to check them
syntactically, but this is an implementation dependent feature.
Have I forgotten something? Is there another approach?
: I would expect that it would usually be more appropriate to check if
: a value was < 0 rather than checking the sign bit but I'll assume you
: had a good reason.
No, that was just an example - I don't dee many situations where I'd do that.
: |>
: |> h. And a special one for Ada95: poor encapsulation of objects. I can
: |> define a 'member function' for a class by including the class in the
: |> parameter list. Unlike C++ or Eiffel, I can do this *anywhere* in my code,
: |> even a nested function hidden somewhere seemingly 'irrelevant'. Whereas
: |> other features of Ada go out of their way to force the programmer to
: |> follow 'good practice' (sometimes a matter of opinion), this seems
: |> very lax.
: If you declare a private type then the only place you can see the
: implementation is from inside the package where the type is declared
: (or a child package). You can declare subprograms that have parameters
: of this type elsewhere but that certainly doesn't qualify as a 'member
: function'.
: The idea you are looking for is 'primitive operations' which a
: explained in the LRM.
Yes, mea culpa. I got this entirely wrong. I must RTFM before activating
fingers in the future!
: Robb Nebbe
Bill Williams
next reply other threads:[~1995-03-29 0:00 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
1995-03-29 0:00 R.A.L Williams [this message]
-- strict thread matches above, loose matches on Subject: below --
1995-03-30 0:00 An observation of Ada (may offend) R.A.L Williams
1995-04-03 0:00 ` Norman H. Cohen
1995-03-27 10:38 R.A.L Williams
1995-03-30 3:14 ` Michael D. Griffin
1995-03-30 0:00 ` David Weller
1995-04-04 0:00 ` Brian Rogoff
1995-04-04 0:00 ` Jack Beidler
1995-03-27 10:28 R.A.L Williams
1995-03-27 0:00 ` Norman H. Cohen
1995-04-04 0:00 ` Robert Dewar
1995-03-28 17:07 ` Larry Kilgallen, LJK Software
1995-03-17 9:27 R.A.L Williams
1995-03-17 15:23 ` Robb Nebbe
1995-03-17 17:08 ` Norman H. Cohen
1995-03-20 3:23 ` S. Tucker Taft
1995-03-20 10:13 ` Robb Nebbe
1995-03-21 21:05 ` Robert Dewar
1995-03-20 16:15 ` Robert I. Eachus
1995-03-21 19:47 ` Norman H. Cohen
1995-03-22 1:28 ` David Weller
1995-03-23 5:47 ` Robert Dewar
1995-03-23 16:38 ` Robert I. Eachus
1995-03-24 10:46 ` Peter Hermann
1995-03-24 16:52 ` David Weller
1995-03-26 4:03 ` Robert Dewar
1995-03-24 21:33 ` Tucker Taft
1995-03-27 18:58 ` Mark A Biggar
1995-03-24 19:45 ` Garlington KE
1995-03-27 19:58 ` Robert I. Eachus
1995-03-28 16:29 ` Garlington KE
1995-03-28 19:30 ` Robert I. Eachus
1995-03-28 22:37 ` Garlington KE
1995-03-29 8:31 ` Robb Nebbe
1995-03-25 17:58 ` Robert Dewar
1995-03-26 6:20 ` R_Tim_Coslet
1995-03-27 20:38 ` Robert I. Eachus
1995-03-26 3:50 ` celier
[not found] ` <3l1lkq$pm6@gnat.csn <3l2o9a$3a1@infomatch.com>
1995-03-27 23:16 ` Robert Dewar
1995-03-23 18:05 ` John DiCamillo
1995-03-17 23:01 ` Larry Kilgallen, LJK Software
1995-03-18 12:41 ` Tucker Taft
1995-03-22 16:50 ` Renaud HEBERT
1995-03-23 23:23 ` John Volan
1995-03-24 0:38 ` Robert Dewar
1995-03-12 23:39 Matt Bruce
1995-03-13 0:34 ` David Weller
1995-03-14 4:49 ` Vladimir Vukicevic
1995-03-17 17:00 ` Michael Feldman
1995-03-17 13:09 ` Fred J. McCall
1995-03-18 20:34 ` Michael Feldman
1995-03-19 22:20 ` Robert Dewar
1995-03-20 17:19 ` Michael Feldman
1995-03-21 21:02 ` Robert Dewar
1995-03-21 23:01 ` Kevin F. Quinn
1995-03-22 12:43 ` Mike Meier
1995-03-20 20:38 ` Kevin F. Quinn
1995-03-21 3:02 ` Michael M. Bishop
1995-03-20 9:31 ` Robb Nebbe
1995-03-20 20:16 ` Mats Weber
1995-03-22 19:44 ` Stephen McNeill
1995-03-28 14:48 ` Wes Groleau
1995-03-22 17:20 ` Richard G. Hash
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox