From: Jacob Sparre Andersen <sparre@nbi.dk>
Subject: Re: Expressing physical units (Was: Reprise: 'in out' parameters for functions)
Date: 10 Apr 2004 15:52:14 +0200
Date: 2004-04-10T15:52:14+02:00 [thread overview]
Message-ID: <pllll4djox.fsf@sparre.crs4.it> (raw)
In-Reply-To: 5ad0dd8a.0404100507.729d3577@posting.google.com
Wojtek Narczynski wrote:
> Jacob Sparre Andersen wrote:
> > The type system is not _unable_ to express physical units. It
> > just has some limitations in how you can do it.
>
> It depends on how exactly you phrase out the task. If you define it
> as having a static check on physical units, I believe Ada type
> system is not able to do this. You are left with paper and pencil.
One of my programs disagrees somewhat with your statement. I switched
from run-time to compile-time checking of unit mismatches, when a
recent version of Macks made it practical to start using compile-time
checks.
It is though correct that physical units are not a specific Ada type,
but rather have to be implemented using the basic type system. With a
tool like Macks, it is reasonably fast to implement the necessary
types for compile-time checking of unit mismatch. Before Macks
matured sufficiently, I either used run-time checks or hand-coded the
types I needed.
> > And although I am annoyed by the limitations, I still haven't seen
> > a description of how the language can make it easier, without
> > introducing problems outweighing the benefits. I have tried to
> > formulate such a modification to Ada myself, but ended up with
> > something that appeared to be (provably) impossible to compile.
>
> (I converged your note here)
>
> I find this subject fascinating. I remember matchcad doing units
> check for me 10 years ago when I was in secondary school, yet I have
> not seen any compiler capable of doing the same. I was thinking that
> a term rewriting system for partial evaluation of the program would
> do the job. Or maybe are there problems with modularization? Could
> you point me at your results, if they are public?
They are unfortunately not published (and they are written in Danish).
Also, I stopped once _I_ was certain it couldn't be done, so I never
wrote down a complete proof, but just enough to convince a colleague.
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.
Are you sure that "matchcad" actually did full compile-time unit
checking?
Jacob
--
�USA fights for the right of the individual.�
�Yes. Those of the individual George W. Bush.�
-- with thanks to Olfax
next prev parent reply other threads:[~2004-04-10 13:52 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 [this message]
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 ` Expressing physical units (Was: Reprise: 'in out' parameters for functions) Russ
2004-04-12 10:29 ` 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