comp.lang.ada
 help / color / mirror / Atom feed
From: Gary Scott <scottg@flash.net>
Subject: Re: Why should hackers love Ada. (Re: Ada 95 based RTOS)
Date: 2000/02/25
Date: 2000-02-25T00:00:00+00:00	[thread overview]
Message-ID: <38B5C9E6.143A32D6@flash.net> (raw)
In-Reply-To: 2000Feb24.122253.1@eisner

Larry Kilgallen wrote:

> In article <38B55928.8A0EAB06@quadruscorp.com>, "Marin D. Condic" <mcondic-nospam@quadruscorp.com> writes:
> > Gary wrote:
> >> I see this reference to ADA being good at bit twiddling, periodically.
> >> Virtually all high-level languages provide facilities for bit twiddling.  Is
> >> there something unique about ADA (I'm a non-ADA programmers, sorry).  Is this
> >> a reference to a transfer function (other languages have this) or memory
> >> aliasing tricks?
> >
> > Well, I don't know what the rest of the world means by "bit twiddling"
> > but I know what *I* mean when I say that. ;-)
> >
> > You have all the facilities you need in Ada (Ada95 - Ada83 didn't do
> > this well) to do shifting, masking & other manipulations of individual
> > bits within words. If you've ever had to do interfacing to low level
> > devices, hardware registers, I/O ports, etc., then you know that you
> > can't always deal with data as an "abstraction" where you can allow the
> > compiler to pick whatever representations it wants and manipulate things
> > any way it likes. Often I have been up against time constraints where
> > even if a high level method of solving the problem may work fine, we
> > dipped into bit masks and logical operators because they degenerated to
> > much more efficient code.
> >
> > Ada95 lets you get at things like this when you need to. The difference
> > between Ada and C on this issue is that with Ada it is a "last resort"
> > whereas with C it is a "way of life". (Look at how lots of bindings to C
> > stuff includes numeric constants for specifying options by or'ing
> > together the constants. While Ada can do that, it isn't the usual
> > idiom.)
>
> I think a major advantage of Ada is that it lets the programmer deal
> at a higher level for the main body of the program, while only the
> interface description contains the specification that bits 2-4 are
> treated as a numeric field for the unit number.  The compiler aids
> and enforces adherence to that specification without requiring the
> programmer to be constantly thinking about it and getting it right.

This is a good feature, but many other languages have similar features (some very old like Jovial and PL/1).
In other languages, my experience is that you simply define pack/unpack/scale routines and write the main
executive and high-level functionality in a high-level fashion (possibly OO) and simply invoke these low-level
"reformat" routines at the top and bottom of the frame (or as-required).  Then again, I'm also used to being
able to embed assembly to gain access to an interval timer or generate an interrupt right into the high-level
language code.



--

Gary Scott
mailto:scottg@flash.net

mailto:webmaster@fortranlib.com
http://www.fortranlib.com






  reply	other threads:[~2000-02-25  0:00 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-02-18  0:00 Ada 95 based RTOS xaplos
2000-02-18  0:00 ` Tucker Taft
2000-02-21  0:00   ` xaplos
2000-02-22  0:00     ` Matthew Majka
2000-02-22  0:00       ` xaplos
2000-02-22  0:00         ` Stanley R. Allen
2000-02-22  0:00         ` Marin D. Condic
2000-02-22  0:00         ` Ted Dennison
2000-02-22  0:00           ` xaplos
2000-02-23  0:00             ` Roger Racine
2000-02-24  0:00               ` Simon Wright
2000-02-24  0:00                 ` Robert Dewar
2000-02-25  0:00             ` Mike Silva
2000-02-26  0:00               ` xaplos
2000-02-23  0:00         ` Tarjei T. Jensen
2000-02-23  0:00           ` Ted Dennison
2000-02-25  0:00             ` Scott Ingram
2000-02-23  0:00           ` Gautier
2000-02-23  0:00             ` Ehud Lamm
2000-02-23  0:00               ` Why should hackers love Ada. (Re: Ada 95 based RTOS) Marin D. Condic
2000-02-23  0:00                 ` Vladimir Olensky
2000-02-23  0:00                   ` Gautier
2000-02-24  0:00                     ` Ehud Lamm
2000-02-24  0:00                   ` David C. Hoos, Sr.
2000-02-24  0:00                     ` Vladimir Olensky
2000-02-23  0:00                 ` Gary
2000-02-24  0:00                   ` Marin D. Condic
2000-02-24  0:00                     ` Larry Kilgallen
2000-02-25  0:00                       ` Gary Scott [this message]
2000-02-25  0:00                         ` Mike Silva
2000-02-26  0:00                           ` Gary Scott
2000-02-25  0:00                         ` Marin D. Condic
2000-02-25  0:00                           ` Gary
2000-02-26  0:00                       ` Robert Dewar
2000-02-26  0:00                         ` Gary Scott
2000-03-07  0:00                           ` Mike Dimmick
2000-03-10  0:00                             ` Wil
2000-03-10  0:00                               ` Ada OS again " David Starner
2000-03-11  0:00                               ` David Botton
2000-02-24  0:00                   ` Gisle S�lensminde
2000-02-24  0:00                 ` Ehud Lamm
2000-02-24  0:00                   ` Ted Dennison
replies disabled

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