In the thesis, we focus on non-traditional programming languages that differ in their evaluation strategy. More specifically we focus on languages with lazy evaluation strategy, meaning, they evaluate their arguments when needed. We begin with their description and the process of their compilation into machine code. The description and procedure are complemented with a description of our own programming language and the implementation of its compiler. Finally, we present some examples of programs for which we give their execution times and show how the implemented optimization effects the generated code. The entire work helps with an easier understanding of how lazy programming languages work and shows that writing more optimal programs requires a different way of thinking than in traditional programming languages.
|