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.

13.4. CONCLUDING REMARKS<br />

Translation from applicative code <strong>into</strong> imperative code has been considered<br />

before. The reason is that assembly code is imperative. This means<br />

that when compiling applicative programming languages such as Scheme,<br />

SML and some parts <strong>of</strong> Lisp transformation from applicative program <strong>into</strong><br />

imperative assembly code is necessary. Many <strong>of</strong> the techniques used when<br />

compiling applicative programs cannot be exploited when developing transformation<br />

rules for this project as assembly code and RSL specifications are<br />

very different. But a few techniques can. This includes techniques for removing<br />

recursions, techniques that can be applied if extending the transformer<br />

to cover a greater part <strong>of</strong> the transformation from applicative RSL specification<br />

<strong>into</strong> imperative RSL specification. One <strong>of</strong> these techniques is the use<br />

continuations as described in [Wan80]. The drawback <strong>of</strong> using continuations<br />

compared to e.g. loops is a lack <strong>of</strong> clearness in most cases.<br />

The work described in [Lin04] and [LH04] considers the possibility <strong>of</strong><br />

translating specifications written within a the mRSL subset <strong>of</strong> RSL and<br />

pro<strong>of</strong> obligations <strong>into</strong> higher-order logic (HOL) specifications and pro<strong>of</strong> obligations<br />

in order to be able to use the generic pro<strong>of</strong> assistant Isabelle. In<br />

this way the the pro<strong>of</strong> support for the RAISE Development Method could<br />

be improved. The project is primarily theoretical and defines among other<br />

things an institution for mRSL as mentioned in Chapter 7.<br />

The results <strong>of</strong> the related work are used to the extend possible, but as<br />

much <strong>of</strong> the work <strong>of</strong> this project never has been done before, it has been<br />

done without the possibility <strong>of</strong> support from related work.<br />

13.4 Concluding Remarks<br />

This project has been an instructive experience for me. First <strong>of</strong> all I have<br />

had the opportunity to try my strength against theoretical work, which have<br />

been both challenging and fun. Furthermore, the project has given me a<br />

better understanding <strong>of</strong> language processors and translation. Last but not<br />

least, by working a lot with RSL and the RAISE method I have gained a<br />

lot <strong>of</strong> experience in these – an experience I hope to be able to utilize when<br />

entering the labour markets.<br />

It is my belief that the use <strong>of</strong> formal methods will increase in the years<br />

to come due to two facts. First <strong>of</strong> all the amount <strong>of</strong> safety critical systems<br />

will increase and at the same time the formal methods will be improved as<br />

more and more tools will be developed. My hope is, that this project and<br />

the resulting transformer will have a positive influence on this development.<br />

131

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

Saved successfully!

Ooh no, something went wrong!