26.09.2013 Views

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 4<br />

Constraints<br />

In this project only a subset <strong>of</strong> RSL, named RSLA for an applicative subset<br />

<strong>of</strong> RSL, is considered. This chapter gives an overview <strong>of</strong> the RSL expressions<br />

and forms not considered. Explanations for the omissions are given when<br />

possible.<br />

It is assumed that the specifications given to the transformer are static<br />

correct specifications according to the static semantics <strong>of</strong> RSL. This means<br />

that a specification should be type checked using the RSL type checker before<br />

it is transformed using the transformer.<br />

4.1 The RSL Constructions Not Considered<br />

In order to be able to transform applicative specifications <strong>into</strong> imperative<br />

specifications and in order to avoid that the work gets to extensive compared<br />

to the benefits only a subset <strong>of</strong> RSL is considered.<br />

The RSL constructs not considered are either <strong>of</strong> no relevance or are not<br />

considered in order to simplify matters. Furthermore, most <strong>of</strong> the constraints<br />

introduced do not limit the expressive power, as these constructs can be<br />

rewritten <strong>into</strong> constructs which comply with the constraints.<br />

In the following a list <strong>of</strong> the RSL constructs not within RSLA is given as<br />

well as reasons as to why these are not considered. The list is divided <strong>into</strong><br />

syntactical and non syntactical constraints, according to how the checks for<br />

them are implemented in the transformer.<br />

Syntactical Constraints<br />

• Abstract specifications (e.g. sort definitions and axiomatic value definitions).<br />

Reason: To simplify matters. Furthermore, the most common way<br />

<strong>of</strong> applying the RAISE Development Method, is to start out with an<br />

abstract applicative specification, which is made concrete before it is<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!