About the Author

I am a programming language specialist combining academic and industrial background. I have experience both with the theory and practice of programming languages. I have developed a course on Programming Paradigms.

I have done research on the following topics:

Context-free parsing

Most human-written corpora of context-free languages can be parsed really fast O(n). Further more, such parsing be parallelized and remain efficient. Find out how.

Theory of parametricity

The way to turn a type into a logical formula giving its meaning is given by Reynold’s theory of parametricity. Let us call such a formula the parametric interpretation. I have contributed to extend the parametric interpretation to dependent types. (The best formulation is probably this one).

Conveniently enough, in dependently-typed languages are both the types and their logical meaning can be expressed. Furthermore, it is even possible to extend such languages so you can turn any inhabitant of a type into the proof that it satisfies the parametric interpretation of its type.

In “Type-Theory in Color” you can find some examples of what you can do with this stuff, as well as in my thesis, which also contains updated versions of some of the linked papers.

Generation of polymorphic testing environments

QuickCheck has shown how to test programs by generating example test case for arbitrary properties. If your property is polymorphic, you should look into my technique to generate the cases. I am currently generalizing that technique.

Linear type systems

Using linear types, one can ensure that resource-critical programs behave correctly (statically so). One can also control optimizations such as fusion.

I have written a stream library in Haskell based on linear types, and I am advocating a proposal to extend Haskell with linear types.