comp.lang.ada
 help / color / mirror / Atom feed
* Contract checking in Ada
@ 2005-03-30 10:46 Tapio Kelloniemi
  2005-03-30 11:18 ` Vinzent 'Gadget' Hoefler
                   ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Tapio Kelloniemi @ 2005-03-30 10:46 UTC (permalink / raw)


Hi all

Ada has very powerful run-time checking system which allows for safe
programming and efficient execution, depending on the user's needs. As
I look at the ARM and GNAT Runtime Library sources, I have noticed
that this does not unfortunately apply to Ada's standard library. Many
subprograms check that its parameters are valid. I'm not saying that
parameter validity checking is bad, becuase it is very useful, but the
user should be able to disable it, when (s)he is certain, that the
conditions will not fail. I'm quite surprised that Ada2005 does not
replace library functions' parameter checks with pragma Assert, in
which
case user could disable checking. In GNAT library, for example, many
checks
are done twice (or even more times), because the library has its own
checks
and the language has its own.

I'm interested in design by contract and would like to have an
implemenation for Ada (like Eiffel's as much as possible). However,
pragma Assert and pragma Debug do not suffice. I would like to have
pre- and postconditions and type invariants. However I have no idea of
how to implement them, except by writing an external tool which would
preprocess Ada sources. I don't want to do that. If anyone has any
advice (except waiting for Ada2015), please tell me.

-- 
Tapio



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

end of thread, other threads:[~2005-04-12 19:29 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-30 10:46 Contract checking in Ada Tapio Kelloniemi
2005-03-30 11:18 ` Vinzent 'Gadget' Hoefler
2005-03-30 11:45 ` Georg Bauhaus
2005-03-30 12:49   ` Martin Dowie
2005-03-30 13:05   ` Tapio Kelloniemi
2005-03-30 13:42     ` Georg Bauhaus
2005-03-31  1:57     ` Randy Brukardt
2005-03-31  3:04       ` Ed Falis
2005-03-31  6:12         ` Martin Dowie
2005-03-31  7:22           ` Martin Dowie
2005-03-31 13:35       ` Tapio Kelloniemi
2005-03-31 17:38         ` Martin Dowie
2005-03-31 17:42         ` Martin Dowie
2005-04-01  2:30           ` Randy Brukardt
2005-04-01  8:02             ` Tapio Kelloniemi
2005-04-01  8:55               ` Dmitry A. Kazakov
2005-04-01 23:17               ` Randy Brukardt
2005-04-03 20:19                 ` Hyman Rosen
2005-04-04  5:31                   ` Randy Brukardt
2005-04-01  7:34         ` Peter Amey
2005-04-09 16:56           ` adaworks
2005-04-12  6:51 ` Duncan Sands
2005-04-12 19:29   ` Martin Dowie

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