This article needs to be updated.(June 2024) |
Simon Thompson | |
---|---|
Born | |
Education | D.Phil., University of Oxford, 1984 |
Known for | Functional programming research, 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, 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 about Erlang for FutureLearn.
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] Thompson's doctoral adviser was Robin Oliver Gandy. [9]
As of 2019 [update] , he worked for Input Output Global, Input Output Hong Kong [10] on domain-specific languages for the Cardano blockchain platform. There, he developed a specialised smart contract language, Marlowe, designed for non-programmers working in the financial sector. [11] [12]
His books include:
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.
In programming language theory, lazy evaluation, or call-by-need, is an evaluation strategy which delays the evaluation of an expression until its value is needed and which also avoids repeated evaluations.
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.
Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods—instead of sequentially—with one completing before the next starts.
Philip Lee Wadler is a UK-based American computer scientist known for his contributions to programming language design and type theory. He is holds the position of Personal 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.
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.
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.
Matthew Flatt is an American computer scientist and professor at the University of Utah School of Computing in Salt Lake City. He is also the leader of the core development team for the Racket programming language.
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 features, 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).
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.
F* is a high-level, multi-paradigm, functional and object-oriented programming language inspired by the languages ML, Caml, and OCaml, and intended for program verification. It is a joint project of Microsoft Research, and the French Institute for Research in Computer Science and Automation (Inria). 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 satisfiability modulo theories (SMT) solving and manual proofs. For execution, programs written in F* can be translated to OCaml, F#, C, WebAssembly, or assembly language. Prior F* versions could also be translated to JavaScript.
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.
Gabriele Cornelia Keller is a computer scientist whose research concerns type systems and data parallelism in functional programming. Educated in Germany, she has worked in Australia, the US, and the Netherlands, where she is Professor of Software Systems at Utrecht University.