Simon Thompson

Simon Thompson

Academic and researcher


Simon Thompson is Professor of Logic and Computation in the Computing Laboratory of the University of Kent, where he has taught computing at undergraduate and postgraduate levels for the past twenty five years, and where he has been department head for the last six.

His research work has centered on functional programming: program verification, type systems, and most recently development of software tools for functional programming languages. His team has built the HaRe tool for refactoring Haskell programs, and is currently developing Wrangler to do the same for Erlang. His research has been funded by various agencies including EPSRC and the European Framework programme. His training is as a mathematician: he has an MA in Mathematics from Cambridge and a D.Phil. in mathematical logic from Oxford.

He has written three books in his field of interest; Type Theory and Functional Programming published in 1991; Miranda: The Craft of Functional Programming (1995) and Haskell: The Craft of Functional Programming (2nd ed. 1999). These are all published by Addison Wesley.

Areas of Expertise:

  • functional programming
  • Haskell
  • Erlang
  • logic in computer science




“The book is written in a very hands-on style, guiding the reader step-by-step through the various aspects of Erlang. In this sense the book is very pedagogical---it shows that the authors have a lot of experience in teaching programming languages. This is also one of the book's major strengths; the reader is not only taught the Erlang language, but also how to reason about concurrent programming problems in general.”
— Christoffer Ekeroth, Stockholm GTUG
“While I initially attempted to learn the language via the various dedicated websites, online documentation resources and screencasts, it wasn't until this book by Erlang expert Francesco Cesarini and co-writer Simon Thompson that I finally was able to wrap my head around the higher language constructs from Erlang Term Storage (ETS) Tables to Open Telecom Platform (OTP) Behaviors. Learning the details of such concepts would be considerably more challenging and time consuming without the thorough explanations and examples provided by the authors...I found Erlang Programming to be a valuable educational reference, one that I will certainly revisit when demanding uptime and proven distributed systems programming is required. ”
— Mike Riley, Dr. Dobb's CodeTalk