GNU Nana

From Wikipedia, the free encyclopedia

GNU Nana
Developed by P.J.Maker
Latest release 2.5
OS UNIX
Genre Design_by_contract
License BSD
Website www.gnu.org/software/nana

GNU Nana provides support for Design by Contract in C and C++. Nana is implemented using both the C Preprocessor and GDB debugger. Features include:

  • Time and space efficient. The GNU `assert.h' implementation uses 53 bytes for `assert(i>=0)' on a i386. The nana version using the i386 `stp' instruction on assert fail uses 10 bytes. If you're willing to accept the time penalty this can be reduced to 0 or 1 byte by using debugger based assertions.
  • Limited support for formal methods.
    • Before and after state support (e.g. x,x' in the Z notation).
    • Support for the predicate calculus operators support for universal (forall) and existential (exists) quantification.
    • Verification of timing behaviour.
  • Selective logging of messages to memory, syslog or files.

[edit] External links