In this family of programming languages programs are constructed by defining what should be solved instead of how it should be solved. One class of declarative programming languages is formed by functional programming languages. These are often credited for producing concise programs that are easy to write and understand, are amenable for proving program correctness and program transformations. One of the reasons that functional programming languages are declarative is that they have a computational model that is an abstraction from the notion of computation done by computing machinery. Functional programmers are not concerned with memory management and computational control flow.
Society increasingly uses computers.
Programs define how this interaction should occur. However, the development of correct and reliable interactive software is complex. One way to decrease this complexity is to find a declarative method. This is the major theme of this PhD.Thesis. In this thesis we claim that functional computation blends smoothly with interaction.