comp.lang.ada
 help / color / mirror / Atom feed
* SPARK and static unit checking?
@ 2008-04-11  9:59 Jacob Sparre Andersen
  2008-04-13 19:39 ` JP Thornley
  0 siblings, 1 reply; 4+ messages in thread
From: Jacob Sparre Andersen @ 2008-04-11  9:59 UTC (permalink / raw)


I have found a rather annoying (but in some ways very reasonable) rule
in SPARK:

   You are not allowed to (re)declare operators for a type.

This prevents me from using my standard trick for static unit type
checking:

   type Length is private;
   function "+" (L, R : Length) return Length; -- not SPARK
   ...
   Meter : constant Length;

   type Area is private;
   function "*" (L, R : Length) return Area; -- not SPARK
   ...

I have an idea for a (clumsy) solution:  Generate two packages with
the same types (name-wise).  The one as above, the other simply as:

   type Length is new Float;
   type Area is new Float;

Then I can use the liberal version with the SPARK tools, and swap the
restrictive in for the proper compilation.

Any proposals for an elegant solution?

Jacob
--
[ I left my signature generator at home. ]



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-04-14 14:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-11  9:59 SPARK and static unit checking? Jacob Sparre Andersen
2008-04-13 19:39 ` JP Thornley
2008-04-14 11:21   ` Jacob Sparre Andersen
2008-04-14 14:57     ` roderick.chapman

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