This book presents SEGRAS, a new language for writing, testing, and analyzing formal specifications of nonsequential and distributed software systems. The language treats data abstractions with states and state-dependent operations that can dynamically create new data objects and concurrently modify their properties according to a specified nonsequential behavior.
The language is based on a well-engineered integration of algebraic specifications and Petri nets. The data objects on which a system operates concurrently are specified as partial abstract data types, while dynamic behavior is specified graphically by means of Petri nets whose state and transition elements and arcs are labeled with terms over the algebraic signature. To support the construction of new system specifications from given ones, the algebraic concept of combination
is extended by a construction on behavior components. lt allows the behaviors of constituent subsystems to be synchronized or composed to new alternative courses of behavior.
In the first part, the core concepts of the SEGRAS language are
presented and a denotational semantics is given for them. Many-sorted partial algebras provide a semantics of data specifications, and Condition-Event systems provide a net semantics of nonsequential behavior.
To increase the practical value of the language, its type system is extended in Part II by parametric types and a restricted form of function types and dependent types. The additional expressive power of the extended type system is demonstrated through a series of examples.
Its semantics is defined in terms of a logical deduction system. As a practical solution to the problem of determining the well-typing of SEXJRAS specifications, a sound compile-time type checking algorithm is presented.