About the Author

I am a language specialist, with expertise in both natural languages, and the theory and practice of programming languages. I have both academic and industrial background.

Among others, I have done research on the following topics:

Context-free parsing

It is well-known that context-free languages can always be parsed in O(n3). I wrote a certified algorithm for that.. Further most human-written corpora of context-free languages can be parsed really fast O(n). Even better, such parsing be parallelized and remain efficient. Find out why and how. I have also considered if context-free languages can be parsed using neural networks.

Logic and language semantics


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.

Programming Paradigms

I have developed a course on Programming Paradigms.