Simon Thompson (professor)

Last updated

Simon Thompson
Born
Education D.Phil., University of Oxford, 1984
Known for Functional programming research, textbooks
Cardano domain-specific languages: Marlowe
Scientific career
Fields Computer science
Institutions University of Kent
Input Output Global
Thesis Recursion theories on the continuous functionals  (1984)
Doctoral advisor Robin Oliver Gandy

Simon Thompson is a research computer scientist, author, and an emeritus professor of the University of Kent, there specializing in logic and computation. [1] His research into functional programming covers software verification and validation, programming tool-building, and software testing for the functional programming languages Erlang, [2] Haskell, [3] [4] and OCaml. [5] [6] [7] He is the author of books on data type theory, Miranda, Haskell, and Erlang, and runs a massive open online course (MOOC) about Erlang for FutureLearn.

Contents

Education

Thompson earned a Doctor of Philosophy (D.Phil.) from the University of Oxford in 1984 with a dissertation titled "Recursion theories on the continuous functionals" [8] The faculty adviser was Robin Oliver Gandy. [9]

Work

As of 2019, he has worked for Input Output Global (IOG), Input Output Hong Kong (IOHK) [10] on domain-specific languages for the Cardano blockchain platform. There, he developed a specialised smart contract language, Marlowe, [11] designed for non-programmers working in the financial sector. [12] [ unreliable source? ]

Books

His books include:

Related Research Articles

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

Lennart Augustsson is a Swedish computer scientist. He was formerly a lecturer at the Computing Science Department at Chalmers University of Technology. His research field is functional programming and implementations of functional programming languages.

<span class="mw-page-title-main">Philip Wadler</span> American computer scientist

Philip Lee Wadler is a UK-based American computer scientist known for his contributions to programming language design and type theory. He is the chair of theoretical computer science at the Laboratory for Foundations of Computer Science at the School of Informatics, University of Edinburgh. He has contributed to the theory behind functional programming and the use of monads; and the designs of the purely functional language Haskell and the XQuery declarative query language. In 1984, he created the Orwell language. Wadler was involved in adding generic types to Java 5.0. He is also author of "Theorems for free!", a paper that gave rise to much research on functional language optimization.

<span class="mw-page-title-main">Simon Peyton Jones</span> British computer scientist (born 1958)

Simon Peyton Jones is a British computer scientist who researches the implementation and applications of functional programming languages, particularly lazy functional programming.

In computer science, a type class is a type system construct that supports ad hoc polymorphism. This is achieved by adding constraints to type variables in parametrically polymorphic types. Such a constraint typically involves a type class T and a type variable a, and means that a can only be instantiated to a type whose members support the overloaded operations associated with T.

The International Conference on Functional Programming (ICFP) is an annual academic conference in the field of computer science sponsored by the ACM SIGPLAN, in association with IFIP Working Group 2.8. The conference focuses on functional programming and related areas of programming languages, logic, compilers and software development.

In functional programming, a generalized algebraic data type is a generalization of parametric algebraic data types.

wxHaskell is a portable and native graphical user interface (GUI) library for the programming language Haskell, built on wxWidgets. It is often used by those wanting to develop a GUI with a functional programming language.

QuickCheck is a software library, specifically a combinator library, originally written in the programming language Haskell, designed to assist in software testing by generating test cases for test suites – an approach known as property testing.

<span class="mw-page-title-main">Incremental computing</span> Software feature

Incremental computing, also known as incremental computation, is a software feature which, whenever a piece of data changes, attempts to save time by only recomputing those outputs which depend on the changed data. When incremental computing is successful, it can be significantly faster than computing new outputs naively. For example, a spreadsheet software package might use incremental computation in its recalculation feature, to update only those cells containing formulas which depend on the changed cells.


Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry. Haskell's main implementation is the Glasgow Haskell Compiler (GHC).

<span class="mw-page-title-main">Paul Hudak</span> American computer scientist

Paul Raymond Hudak was an American musician and professor of computer science at Yale University who was best known for his involvement in the design of the programming language Haskell, and for several textbooks on Haskell and computer music. He was a chair of the department, and was also master of Saybrook College. He died on April 29, 2015, of leukemia.

Conor McBride is a Reader in the department of Computer and Information Sciences at the University of Strathclyde. In 1999, he completed a Doctor of Philosophy (Ph.D.) in Dependently Typed Functional Programs and their Proofs at the University of Edinburgh for his work in type theory. He formerly worked at Durham University and briefly at Royal Holloway, University of London before joining the academic staff at the University of Strathclyde.

<span class="mw-page-title-main">F* (programming language)</span> Functional programming language inspired by ML and aimed at program verification

F* is a functional programming language inspired by ML and aimed at program verification. Its type system includes dependent types, monadic effects, and refinement types. This allows expressing precise specifications for programs, including functional correctness and security properties. The F* type-checker aims to prove that programs meet their specifications using a combination of SMT solving and manual proofs. Programs written in F* can be translated to OCaml, F#, and C for execution. Previous versions of F* could also be translated to JavaScript.

<span class="mw-page-title-main">Cardano (blockchain platform)</span> Public blockchain platform

Cardano is a public blockchain platform. It is open-source and decentralized, with consensus achieved using proof of stake. It can facilitate peer-to-peer transactions with its internal cryptocurrency, ADA.

In type theory, session types are used to ensure correctness in concurrent programs. They guarantee that messages sent and received between concurrent programs are in the expected order and of the expected type. Session type systems have been adapted for both channel and actor systems.

References

  1. Thompson, Simon (20 October 2023). "Professor Simon Thompson". University of Kent: School of Computing. Canterbury, Kent, England.
  2. Bereczky, Péter; Horpácsi, Dániel; Thompson, Simon (23 August 2020). Machine-Checked Natural Semantics for Core Erlang: Exceptions and Side Effects. International Conference on Functional Programming (ICFP). Online via ACM SIGPLAN.
  3. Thompson, Simon (May 1997). Higher-order + Polymorphic = Reusable (Report). Canterbury, Kent: School of Computing, University of Kent . Retrieved 30 December 2023.
  4. Li, Huiqing; Thompson, Simon; Reinke, Claus (April 2005). "The Haskell Refactorer: HaRe, and its API". In Boyland, John Tang; Hedin, Görel (eds.). Proceedings of the 5th workshop on Language Descriptions, Tools and Applications. Canterbury, Kent: School of Computing, University of Kent. pp. 182–196. Retrieved 30 December 2023.
  5. Rowe, Reuben N. S.; Thompson, Simon (8 September 2017). ROTOR: First Steps Towards a Refactoring Tool for OCaml. International Conference on Functional Programming (ICFP). Phoenix, Arizona via ACM SIGPLAN.
  6. Rowe, Reuben N. S.; Férée, Hugo; Thompson, Simon; Owens, Scott (25 June 2019). Characterising Renaming within OCaml's Module System: Theory and Implementation. Programming Language Design and Implementation (PLDI). Phoenix, Arizona via ACM SIGPLAN.
  7. Harrison, Joseph; Varoumas, Steven; Thompson, Simon; Rowe, Reuben (28 August 2020). API migration: compare transformed. International Conference on Functional Programming (ICFP). Online via ACM SIGPLAN.
  8. Thompson, Simon (June 1985). "Axiomatic Recursion Theory and the Continuous Functionals". Journal of Symbolic Logic. New York, New York. 50 (2): 442–450. doi:10.2307/2274232. JSTOR   2274232. S2CID   26299352 via JSTOR.
  9. "Mathematics Genealogy Project". North Dakota State University: Department of Mathematics.
  10. "IOHK: Team: Prof Simon Thompson: Technical Project Director Research". Input Output. n.d. Archived from the original on 28 November 2022.
  11. Lamela Seijas, Pablo; Nemish, Alexander; Smith, David; Thompson, Simon (7 August 2020). "Marlowe: Implementing and Analysing Financial Contracts on Blockchain". In Bernhard, Matthew; Bracciali, Andrea; Camp, L. Jean; Matsuo, Shin'ichiro; Maurushat, Alana; Rønne, Peter B.; Sala, Massimiliano (eds.). Financial Cryptography and Data Security. Lecture Notes in Computer Science. Cham: Springer International Publishing. pp. 496–511. doi: 10.1007/978-3-030-54455-3_35 . ISBN   978-3-030-54455-3.
  12. Hobey, Erin (11 December 2018). "Say Hello to IOHK's New Cardano Blockchain Tools, Plutus and Marlowe". Crowdfund Insider. Retrieved 18 February 2019.
  13. "Miranda: A Non-strict, Polymorphic, Functional Language". 2010.
  14. Richards, Hamilton (November 1998). "Book reviews" (PDF). Journal of Functional Programming. 8 (6): 633–637. doi:10.1017/S0956796898213220.