Paradigm | Multi-paradigm |
---|---|
Developer | Altran and AdaCore |
Stable release | |
Typing discipline | static, strong, safe, nominative |
OS | Cross-platform: Linux, Microsoft Windows, Mac OS X |
License | GPLv3 |
Website | About SPARK |
Major implementations | |
SPARK Pro, SPARK GPL Edition | |
Influenced by | |
Ada, Eiffel |
X
by one or one thousand; or it might set some global counter to X
and return the original value of the counter in X
; or it might do absolutely nothing with X
at all.Increment
procedure does not use (neither update nor read) any global variable and that the only data item used in calculating the new value of X
is X
itself.Increment
will use the global variable Count
in the same package as Increment
, that the exported value of Count
depends on the imported values of Count
and X
, and that the exported value of X
does not depend on any variables at all and it will be derived from constant data only.X
is derived from itself alone, but also that before Increment
is called X
must be strictly less than the last possible value of its type and that afterwards X
will be equal to the initial value of X
plus one.