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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CHAPTER 4. CONSTRAINTS<br />

further developed <strong>into</strong> an imperative specification. This makes it superfluous<br />

to be able to transform abstract applicative specifications.<br />

There is one exception to this constraint. Sort definitions that are not<br />

<strong>of</strong> a type <strong>of</strong> interest are transformed, as this transformation does not<br />

cause any trouble.<br />

• Concurrent specifications<br />

Reason: To simplify matters. Concurrent specifications are not considered<br />

in order to limit the size <strong>of</strong> the project.<br />

• Union definitions.<br />

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

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

union definitions are left out. Furthermore, union definitions<br />

can be rewritten <strong>into</strong> variant definitions.<br />

• Post conditions.<br />

Reason: To simplify matters. Post conditions are usually used in<br />

abstract specifications which are not considered.<br />

• Parameterized scheme definitions.<br />

Reason: To simplify matters. Furthermore, a parameterized scheme<br />

definition can be rewritten <strong>into</strong> a non-parameterized scheme definition<br />

by incorporating the classes over which the scheme is parameterized.<br />

• Extending class expressions.<br />

Reason: To simplify matters. Furthermore, an extending class expression<br />

can be rewritten <strong>into</strong> a basic class expression by incorporating the<br />

extended class in the extending class.<br />

• Hiding class expressions.<br />

Reason: To simplify matters.<br />

• Renaming class expressions.<br />

Reason: To simplify matters. Furthermore, a renaming class expression<br />

can be rewritten <strong>into</strong> a basic class expression by rewriting the<br />

original class using the new names.<br />

• Scheme instantiations.<br />

Reason: To simplify matters. Furthermore, scheme instantiations can<br />

be rewritten by using a whole scheme definition for each instantiation.<br />

• Object declarations.<br />

Reason: To simplify matters.<br />

• Quantified expressions.<br />

Reason: To simplify matters.<br />

20

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

Saved successfully!

Ooh no, something went wrong!