This thesis addresses the problem of avoiding errors in functional programs. The thesis has three parts, discussing different aspects of program correctness, with the unifying theme that types are an integral part of the methods used to establish correctness. The first part validates a common, but not obviously correct, method for reasoning about functional programs. In this method, dubbed “fast and loose reasoning”, programs written in a language with non-terminating functions are treated as if they were written in a total language. It is shown that fast and loose reasoning is sound when the programs are written in a given total subset of the language, and the resulting properties are translated back to the partial setting using certain pa...
Most statically typed functional programming languages allow programmers to write partial functions:...
We present a unified framework to describe and compare functional language implementations. We expre...
A type checking method for the functional language LFC is presented. A distinct feature of LFC is th...
This thesis addresses the problem of avoiding errors in functionalprograms. The thesis has three par...
Functional programmers often reason about programs as if they were written in a total language, expe...
This thesis consists of two parts. Both concern reasoning about non-strict functional programming la...
In this chapter we examine ways in which functional programs can be proved correct. For a number of ...
We express implementations of functional languages as a succession of program transformations in a c...
Programming language implementations bridge the gap between what the program developer sees and unde...
The driving idea of functional programming is to make programming more closely related to mathematic...
A substantial amount of work has been devoted to the proof of correctness of various program analyse...
. In this paper we present a general framework for type-based analyses of functional programs. Our f...
We have built several tools to help with testing and verifying functional programs. All three tools ...
We discuss the properties of strictly typed languages on the one hand and soft typing of the other a...
. We show that compiler optimisations based on strictness analysis can be expressed formally in the ...
Most statically typed functional programming languages allow programmers to write partial functions:...
We present a unified framework to describe and compare functional language implementations. We expre...
A type checking method for the functional language LFC is presented. A distinct feature of LFC is th...
This thesis addresses the problem of avoiding errors in functionalprograms. The thesis has three par...
Functional programmers often reason about programs as if they were written in a total language, expe...
This thesis consists of two parts. Both concern reasoning about non-strict functional programming la...
In this chapter we examine ways in which functional programs can be proved correct. For a number of ...
We express implementations of functional languages as a succession of program transformations in a c...
Programming language implementations bridge the gap between what the program developer sees and unde...
The driving idea of functional programming is to make programming more closely related to mathematic...
A substantial amount of work has been devoted to the proof of correctness of various program analyse...
. In this paper we present a general framework for type-based analyses of functional programs. Our f...
We have built several tools to help with testing and verifying functional programs. All three tools ...
We discuss the properties of strictly typed languages on the one hand and soft typing of the other a...
. We show that compiler optimisations based on strictness analysis can be expressed formally in the ...
Most statically typed functional programming languages allow programmers to write partial functions:...
We present a unified framework to describe and compare functional language implementations. We expre...
A type checking method for the functional language LFC is presented. A distinct feature of LFC is th...