In this thesis the programming language 4_2 is described in detail. 4_2 is a reversible programming language which means roughly that the compilation of a program yields two executables, one corresponding to the normal direction of evaluation and one corresponding to the inverse direction of evaluation. The programming language is mainly imperative, though it also allows declarative elements. Another important aspect of 4_2 is that it is parametrized. On the basis of an example, namely the automatic translation project Rosetta, it is shown how 4_2 can be put into practice.
Master thesis University of Amsterdam.