Philip Wadler


Keynote speaker, Professor of Theoretical Computer Science at University of Edinburgh, Java Generics

Philip Wadler is Professor of Theoretical Computer Science at the University of Edinburgh. He is an ACM Fellow and a Fellow of the Royal Society of Edinburgh, past chair of ACM SIGPLAN, and past holder of a Royal Society-Wolfson Research Merit Fellowship. Previously, he worked or studied at Stanford, Xerox Parc, CMU, Oxford, Chalmers, Glasgow, Bell Labs, and Avaya Labs, and visited as a guest professor in Copenhagen, Sydney, and Paris. He has an h-index of 61, with more than 18,000 citations to his work according to Google Scholar. He is a winner of the POPL Most Influential Paper Award, has contributed to the designs of Haskell, Java, and XQuery, and is a co-author of Introduction to Functional Programming (Prentice Hall, 1988), XQuery from the Experts (Addison Wesley, 2004) and Generics and Collections in Java (O’Reilly, 2006). He has delivered invited talks in locations ranging from Aizu to Zurich.

YOW! 2013 Sydney

How Best to Blend a Domain-Specific Language into a Host Language?

For the domain of databases, the old question of how to achieve language integrated query is receiving renewed attention, in part because of its support through Microsoft’s LINQ framework. We present a practical theory of language-integrated query based on quotation and normalisation of quoted terms. Higher-order features prove useful even for constructing first-order queries. We prove a theorem characterising when a host query is guaranteed to generate a single SQL query, and we present experimental results confirming our technique works, even in situations where Microsoft’s LINQ framework either fails to produce an SQL query or, in one case, produces an avalanche of SQL queries. Our ideas are implemented in F#, and the talk briefly considers how they might apply to other languages such as Scala and Haskell.

View Slides

The First Monad Tutorial

Writing and speaking about monads has developed into a cottage industry. Googling “monad tutorial” returns 92,000 hits, for languages ranging from Haskell to Clojure, Python to Scala, F# to C#, with analogies ranging from writing desks to space suits, boxes of fruit to a pair of burritos, hipster cool to love affairs.

This talk reprises the first monad tutorial. It explains how monads arise naturally by considering variations of a a simple interpreter for arithmetic expressions, and introduces a simple API usable in a wide range of applications. It is suitable for anyone familiar with the basics of functional programming, and contains no analogies.

View Slides