We present a refinement strategy for
, which is the combination of Z, CSP, and the refinement calculus in the setting of Hoare and He’s unifying theories of programming. The strategy unifies the theories of refinement for processes and their constituent actions, and provides a coherent technique for the stepwise refinement of concurrent and distributed programs involving rich data structures. This kind of development is carried out using
’s refinement calculus, and we describe some of its laws for the simultaneous refinement of state and control behaviour, including the splitting of a process into parallel subcomponents. We illustrate the strategy and the laws using a case study that shows the complete development of a small distributed program.
We present algebraic laws for a language similar to a subset of sequential Java that includes inheritance, recursive classes, dynamic binding, access control, type tests and casts, assignment, but no sharing. These laws are proved sound with respect to a weakest precondition semantics. We also show that they are complete in the sense that they are sufficient to reduce an arbitrary program to a normal form substantially close to an imperative program; the remaining object-oriented constructs could be further eliminated if our language had recursive records. This suggests that our laws are expressive enough to formally derive behaviour preserving program transformations; we illustrate that through the derivation of provably-correct refactorings.
Following the trend to combine techniques to cover several facets of the development of modern systems, an integration of Z and CSP, called
, has been proposed as a refinement language; its relational model, based on the unifying theories of programming (UTP), justifies refinement in the context of both Z and CSP. In this paper, we introduce
, a timed extension of
, and present a new UTP time theory, which we use to give semantics to
and to validate some of its laws. In addition, we provide a framework for validation of timed programs based on FDR, the CSP model-checker. In this technique, a syntactic transformation strategy is used to split a timed program into two parallel components: an untimed program that uses timer events, and a collection of timers. We show that, with the timer events, it is possible to reason about time properties in the untimed language, and so, using FDR. Soundness is established using a Galois connection between the untimed UTP theory of
(and CSP) and our time theory.
Automatic generation of formal specifications from requirement reduces cost and complexity of formal models creation. Thus, the generated formal model brings the possibility to carry out system property verification. This paper proposes a Controlled Natural Language (CNL, a subset of English), use case specification templates, and a strategy and tool support to generate process algebraic formal models (in CSP notation) from use cases specified using the templates and CNL. We define templates that represent requirement at different levels of abstraction. Moreover, a refinement notion is defined based on events mapping between abstract and concrete models.
We present a strategy for the automatic generation of test cases from parametrised use case templates that capture control flow, state, input and output. Our approach allows test scenario selection based on particular traces or states of the model. The templates are internally represented as CSP processes with explicit input and output alphabets, and test generation is expressed as counter-examples of refinement checking, mechanised using the FDR tool. Soundness is addressed through an input–output conformance relation formally defined in the CSP traces model. This purely process algebraic characterisation of testing has some potential advantages, mainly an easy automation of conformance verification and test case generation via model checking, without the need to develop any explicit algorithm.
The general purpose of this thesis is to inve8tigate the design of compilers for procedu ralla.nguagea, based on the algebraic la.ws which these langua.ges sa.tisfy. The particular stra.tegy adopted is to reduce an arbitrary source progrQlIl to a nonna! form which de scribes precisely the beha.viour of the ta.rget machine. This is achieved by a. series of algebraic transformations which are proved from the more basic laws. The correctness of the oompiler follows from the correctness of each algebraic transforma.tion. 3.12 Guarded Command. .. 3.13 Guarded Command Set .
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.