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.

4.1. THE RSL CONSTRUCTIONS NOT CONSIDERED<br />

• Function expressions.<br />

Reason: To simplify matters. In some cases function expressions can<br />

be rewritten by introducing a new function at outermost level.<br />

• Initialise expressions.<br />

Reason: Initialise expressions are not considered as the initial values<br />

<strong>of</strong> the established variables are unknown. This means that an initialse<br />

expression would have no effect.<br />

• Infinite map expressions.<br />

Reason: To simplify matters. Due to major revisions needed in one<br />

<strong>of</strong> the tools used in order to be able to do the transformation <strong>of</strong> infinite<br />

map expressions, infinite map expressions are left out. Furthermore,<br />

infinite maps are not widely used.<br />

• Test cases.<br />

Reason: To simplify matters.<br />

Non-Syntactical Constraints<br />

• Subtype expressions in which a type <strong>of</strong> interest is part <strong>of</strong> the single<br />

typing.<br />

Reasons: The transformation <strong>of</strong> subtype expressions in which a type<br />

<strong>of</strong> interest is part <strong>of</strong> the single typing would lead to a syntactically<br />

wrong imperative specification.<br />

• Explicit value definitions <strong>of</strong> the form product_binding : type_expr =<br />

value_expr.<br />

Reason: To simplify matters. Furthermore, most value definitions <strong>of</strong><br />

the form product_binding : type_expr = value_expr can be rewritten<br />

by establishing more explicit value definitions, one for each id_binding<br />

in the product_binding.<br />

• The type expression <strong>of</strong> a single typing <strong>of</strong> an explicit function definition<br />

shall be a function type expression.<br />

Reason: To simplify matters. Furthermore, this can easily be accomplished<br />

by inserting the actual type <strong>of</strong> the function instead <strong>of</strong> using a<br />

corresponding type name.<br />

• Higher order functions.<br />

Reason: To simplify matters. In some cases higher order functions<br />

can be rewritten <strong>into</strong> normal functions, e.g. a function <strong>of</strong> the type U<br />

→ T → V can be rewritten <strong>into</strong> a function <strong>of</strong> the type U × T → V.<br />

• Collections <strong>of</strong> values <strong>of</strong> the types <strong>of</strong> interest such as sets and lists <strong>of</strong><br />

values <strong>of</strong> the types <strong>of</strong> interest and maps containing values <strong>of</strong> the types<br />

21

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

Saved successfully!

Ooh no, something went wrong!