comp.lang.ada
 help / color / mirror / Atom feed
From: 18k11tm001@sneakemail.com (Russ)
Subject: Re: Expressing physical units (Was: Reprise: 'in out' parameters for functions)
Date: 11 Apr 2004 23:58:12 -0700
Date: 2004-04-11T23:58:12-07:00	[thread overview]
Message-ID: <bebbba07.0404112258.626430@posting.google.com> (raw)
In-Reply-To: ij2ec.22694$1y1.20221@nwrdny03.gnilink.net

Hyman Rosen <hyrosen@mail.com> wrote in message news:<ij2ec.22694$1y1.20221@nwrdny03.gnilink.net>...
> Jacob Sparre Andersen wrote:
> > It should be noted that my analysis was tied rather strongly to Ada,
> > and a more relaxed programming language might be able to do something
> > that would be sufficiently close to full compile-time unit checking.
> 
> C++ can do full compile-time unit checking with no runtime overhead
> as long as all units needed by the program are known at compile-time.
> The technique uses templates, requires automatic instantiation of
> templates for usability (and so cannot be done in Ada), and was published
> in Barton & Nackman, _Scientific and Engineering C++_. I've often posted
> the technique, but here goes again, in a simplified version:

Just for my own education, would you mind explaining why it cannot be
done in a usable way in Ada? Is it because you need a sizable chunk of
instantiation code at the top of each source file that is to use it?
If so, isn't there some trick to get around it?

By the way, I work in the field of air traffic management (ATM), and
I'd really like to see a practical way to guarantee units consistency.
The general mks system is inappropriate for ATM. The traditional units
for ATM are nautical miles (nmi) for horizontal length, and feet (ft)
for altitude. That won't change in our lifetimes -- and probably
never. As for time, it can be in seconds, minutes, or hours.
Horizontal speed in usually given in terms of knots (kn), which is
nmi/hr, but altitude rate is usually given in terms of ft/min. Heading
is normally given in degrees.

In my experience, the most common units problem is confusion between
degrees and radians. Radians are preferable for use inside programs,
but degrees are preferable for I/O. This problem really needs to be
licked once and for all. The next most common problem I find is that
altitude is alternately expressed in terms of ft, hundreds of ft, or
thousands of feet. Standard "Flight Levels" are at multiples of 1000
ft, but they are expressed in units of 100 ft. For example, "FL310" is
a pressure altitude of 31,000 ft.

If a practical way could be developed to deal with these basic units,
and perhaps a few others (such as weight), the integrity of ATM
software could be enhanced considerably, I believe. I was working on a
scheme a couple of years ago involving the standard Ada type system,
but I was (and still am) an Ada programming newbie. I think it would
have worked reasonably well, but who am I to say? In any case, my
friggin' hard drive died and I didn't have that particular work backed
up, so its gone.



  parent reply	other threads:[~2004-04-12  6:58 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <u4qrv5hwr.fsf@acm.org>
2004-04-08 17:19 ` Reprise: 'in out' parameters for functions Alexander E. Kopilovich
     [not found] ` <bRecOT0TxF@VB1162.spb.edu>
2004-04-08 23:46   ` Stephen Leake
2004-04-09  9:23     ` Florian Weimer
2004-04-09 10:04       ` Dmitry A. Kazakov
2004-04-09 11:23         ` Martin Krischik
2004-04-09 12:44           ` Dmitry A. Kazakov
2004-04-09 22:48             ` Randy Brukardt
2004-04-14 14:40               ` Robert I. Eachus
2004-04-14 21:20                 ` Randy Brukardt
2004-04-09 22:47         ` Florian Weimer
2004-04-10 10:49           ` Dmitry A. Kazakov
2004-04-10 11:11             ` Florian Weimer
2004-04-10 13:26               ` Dmitry A. Kazakov
2004-04-10 20:50                 ` Georg Bauhaus
2004-04-11 10:31                   ` Dmitry A. Kazakov
2004-04-09 11:27       ` Stephen Leake
2004-04-09 22:46       ` Randy Brukardt
2004-04-09 13:12     ` Wojtek Narczynski
2004-04-09 15:48       ` Expressing physical units (Was: Reprise: 'in out' parameters for functions) Jacob Sparre Andersen
2004-04-10 13:07         ` Wojtek Narczynski
2004-04-10 13:52           ` Jacob Sparre Andersen
2004-04-11  2:45             ` Hyman Rosen
2004-04-11 10:14               ` Expressing physical units Jacob Sparre Andersen
2004-04-11 16:05                 ` Hyman Rosen
2004-04-12  6:58               ` Russ [this message]
2004-04-12 10:29                 ` Expressing physical units (Was: Reprise: 'in out' parameters for functions) Dmitry A. Kazakov
2004-04-13  6:52                   ` Russ
2004-04-13 10:55                     ` Dmitry A. Kazakov
2004-04-14  4:50                       ` Hyman Rosen
2004-04-14  8:49                         ` Dmitry A. Kazakov
2004-04-14 16:49                           ` Hyman Rosen
2004-04-15 10:37                             ` Dmitry A. Kazakov
2004-04-14  7:10                       ` Russ
2004-04-14  8:53                         ` tmoran
2004-04-14  9:01                           ` Vinzent 'Gadget' Hoefler
2004-04-14  9:21                         ` Dmitry A. Kazakov
2004-04-13  9:53             ` Wojtek Narczynski
2004-04-15 21:27               ` Expressing physical units Jacob Sparre Andersen
2004-04-16 11:40                 ` Dmitry A. Kazakov
2004-04-09 16:17       ` Reprise: 'in out' parameters for functions Georg Bauhaus
2004-04-10  2:28         ` Wojtek Narczynski
2004-04-10  9:46           ` Georg Bauhaus
2004-04-10 10:49           ` Dmitry A. Kazakov
2004-04-10 15:35             ` Wojtek Narczynski
2004-04-10 21:01               ` Georg Bauhaus
2004-04-10 21:16               ` Georg Bauhaus
2004-04-11 13:20                 ` exception parameters Stephen Leake
2004-04-12 10:29                   ` Dmitry A. Kazakov
2004-04-13  0:58                     ` Stephen Leake
2004-04-13  1:30                       ` Randy Brukardt
2004-04-13  8:04                   ` Jean-Pierre Rosen
2004-04-11 10:31               ` Reprise: 'in out' parameters for functions Dmitry A. Kazakov
2004-04-12 22:02                 ` Randy Brukardt
2004-04-13 10:56                   ` Dmitry A. Kazakov
2004-04-14 21:12                     ` Randy Brukardt
2004-04-15 10:37                       ` Dmitry A. Kazakov
2004-04-13  9:30                 ` Wojtek Narczynski
2004-04-13 12:00                   ` Dmitry A. Kazakov
2004-04-13 22:41                     ` Wojtek Narczynski
2004-04-14  8:49                       ` Dmitry A. Kazakov
2004-04-14 15:03                         ` Wojtek Narczynski
2004-04-15 10:37                           ` Dmitry A. Kazakov
2004-04-16  0:29                             ` Wojtek Narczynski
2004-04-16 11:36                               ` Dmitry A. Kazakov
2004-04-16 19:25                                 ` Wojtek Narczynski
2004-04-14 15:57             ` Robert I. Eachus
2004-04-15  8:04               ` Dmitry A. Kazakov
2004-04-10 12:32           ` Wojtek Narczynski
2004-04-14 15:46           ` Robert I. Eachus
2004-04-16  1:52             ` Wojtek Narczynski
2004-04-16  5:40               ` Robert I. Eachus
2004-04-16 11:38                 ` Wojtek Narczynski
2004-04-16 16:30                   ` Robert I. Eachus
2004-04-16 18:38                   ` Randy Brukardt
2004-04-16 22:15                     ` Wojtek Narczynski
2004-04-17  1:20                       ` Robert I. Eachus
2004-04-17 11:42                         ` Wojtek Narczynski
2004-04-17 14:14                           ` Robert I. Eachus
2004-04-16 19:28                   ` Wojtek Narczynski
2004-04-09 17:09       ` Pascal Obry
2004-04-10  2:37         ` Wojtek Narczynski
replies disabled

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