Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Browse by topic Browse by titles Authors Reviewers Browse by issue Browse Help
Thompson, Simon
University of Kent
Canterbury, United Kingdom
   Featured Reviewer
   Reader Recommended
Follow this Reviewer

Simon Thompson is an author, educator and researcher in computer science, best known for his work on functional programming. Simon trained as a mathematician; his DPhil is in mathematical logic, and he was supervised by Robin Gandy, one of Alan Turing’s few graduate students.

After graduating from Oxford, and working for a year at the University of Lancaster, Simon moved to the University of Kent, where he has worked ever since. During his time there, he has taken on leadership roles in teaching and research, and was department chair from 2002 to 2010. He has also been responsible for industrial/academic links, and in 2004 set up the Kent IT Consultancy, in which Kent students provide IT consultancy to local SMEs.

Simon is an evangelist for functional programming, and has authored texts—still in print—on programming in Haskell and Erlang. His first book, which has recently seen a revival as a freely available PDF [1], covered Martin-Löf’s constructive type theory and its application to programming. He, together with Erlang inventor Joe Armstrong and Erlang Solutions’ founder Francesco Cesarini, recently presented a set of online Erlang Master Classes [2], which form part of an Erlang MOOC that was successfully piloted in spring 2015.

Simon is Professor of Logic and Computation, a title that acknowledges not only his work on reasoning about functional programs as well as on visual languages for reasoning, but also his broader work on the practice of functional programming. He has led the development of refactoring tools for functional languages, first with the HaRe tool for Haskell and then with the Erlang refactorer Wrangler (so called because it is—almost—an anagram of Erlang!). His current research goal is to improve the trustworthiness of refactoring tools using logical tools.

He is a committed reviewer for CR, as well as book review editor for the Journal of Functional Programming because he has always been a keen reader of reviews, and is happy to pay back by writing reviews himself. He is also an active blogger and Twitter contributor.




Date Reviewed  
- 10 of 63 reviews

  Programming in Haskell
Hutton G.,  Cambridge University Press, New York, NY, 2016. 318 pp. Type: Book (978-1-316626-22-1)

Graham Hutton’s Programming in Haskell is a leading textbook on the functional programming language Haskell, which first appeared in 2007; it is instructive to see how its second edition reflects what has changed over the last decade....

Aug 17 2017  
  Dynamic slicing of concurrent specification languages
Llorens M., Oliver J., Silva J., Tamarit S.  Parallel Computing 53(C): 1-22, 2016. Type: Article

In approaching a paper, a reviewer has a few questions ready. What is the paper about? How does the method described work? Where is it situated relative to other work? But perhaps the first question to ask is this: Why should I read the paper? Dyn...

Aug 4 2016  
  May-happen-in-parallel analysis for actor-based concurrency
Albert E., Flores-Montoya A., Genaim S., Martin-Martin E.  ACM Transactions on Computational Logic 17(2): 1-39, 2015. Type: Article

When we run a program on a modern compiler, or in a browser, what is it that makes the program execute reasonably quickly, and without using unreasonable amounts of space, or, if we are running on a smartphone, without using too much energy? Partl...

Apr 28 2016  
  The fixed-point theory of strictly causal functions
Matsikoudis E., Lee E.  Theoretical Computer Science 574(C): 39-77, 2015. Type: Article

Consider this problem of working with timed systems. Suppose that we are to model a ball bouncing under gravity, with air resistance. The ball will bounce less high each time, with the time gaps between bounces reducing, too. In fact, bouncing wil...

Oct 12 2015  
  On the fine-structure of regular algebra
Foster S., Struth G.  Journal of Automated Reasoning 54(2): 165-197, 2015. Type: Article

Although it is dangerous to generalize from a single example, it’s instructive to look at Foster and Struth’s paper as giving us a snapshot of the state of the art in automating ordinary reasoning. First, let’s look at the partic...

May 28 2015  
  Cloud refactoring: automated transitioning to cloud-based services
Kwon Y., Tilevich E.  Automated Software Engineering 21(3): 345-372, 2014. Type: Article

Refactoring is the process of changing how a program works without changing what it does; even before the term was coined, it was practiced by programmers as “program restructuring” from the early 1950s. Refactoring itself came to prom...

Oct 7 2014  
  Certified programming with dependent types: a pragmatic introduction to the Coq proof assistant
Chlipala A.,  The MIT Press, Cambridge, MA, 2013. 440 pp. Type: Book (978-0-262026-65-9), Reviews: (1 of 2)

Chlipala’s text is an outstanding introduction to how programs can be guaranteed to be correct by means of the Coq theorem prover, programs that are, in his terminology, “certified.” While machine-assisted proof has been possible...

Jun 27 2014  
  Crossing the gap from imperative to functional programming through refactoring
Gyori A., Franklin L., Dig D., Lahoda J.  ESEC/FSE 2013 (Proceedings of the 2013 9th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, Saint Petersburg, Russia,  Aug 18-26, 2013) 543-553, 2013. Type: Proceedings

I have been writing functional programs for 30 years, first in KRC, then in Miranda, and more recently in Haskell and Erlang. In the past few years, however, something rather remarkable has been happening: the essentials of functional programming ...

Oct 3 2013  
  Intraprocedural dataflow analysis for software product lines
Brabrand C., Ribeiro M., Tolêdo T., Borba P.  AOSD 2012 (Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development, Potsdam, Germany,  Mar 25-30, 2012) 13-24, 2012. Type: Proceedings

Computer systems of any size are unlikely to be simple programs. Extracted from some sort of source code control, they will be configured and targeted for deployment using preprocessors, configuration, and make tools. These aspects are often negle...

May 29 2013  
  A canonical locally named representation of binding
Pollack R., Sato M., Ricciotti W.  Journal of Automated Reasoning 49(2): 185-207, 2012. Type: Article

Variables underpin mathematics and logic, appearing in algebraic equations, integrals, and quantified formulas, to give three examples. In an algebraic equation, there is usually implicit universal quantification. The variables range over all (sui...

Dec 18 2012  
Display per column
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright © 2000-2017 ThinkLoud, Inc.
Terms of Use
| Privacy Policy