Abstract
Let's get started? In the beginning was created Ada. It did not have any assertions. Then came GNAT, which introduced pragma Assert. The ARG saw that it was good, and adopted it in Ada 2005. Then came GNAT again, which introduced pragma Precondition and pragma Postcondition. The ARG saw that they were good too, and adopted them as aspects in Ada 2012. The ARG even tried to beat GNAT at this game, and introduced at the same time aspects for type predicates (see Gems #146 and #147) and type invariants (see Gem #148), which are other forms of assertions. Then came GNAT again, introducing pragmas Assume, Assert_And_Cut, and Loop_Invariant, and aspect Contract_Cases, yet other forms of assertions.
Recommendations
Gem #56: creating Ada to Java calls using GNAT-AJIS
In a previous Gem we introduced ada2java, which maps an Ada specification to a Java specification, to support calls from Java to Ada. Even though ada2java doesn't support creating Ada bindings of Java specs, it's still possible to use it to support ...
Gem #37: bounded buffer package in GNAT hierarchy (part 2)
Ada Gem #37 --- Part 1 of this Gem briefly introduced bounded buffers, protected types, and the declaration of the generic package GNAT. Bounded_Buffers, exporting protected type Bounded_Buffer. In Part 2 of the Gem we examine the private part of ...
Gem #84: the distributed systems annex 1 -- simple client/server
Ada Gem #84 --- This is the first in a series of Gems introducing the facilities defined by the optional annex for distributed systems (Annex E) in the Ada Reference Manual. In this introduction, we show how a simple client/server architecture can be ...






Comments