Simon Marlow | |
---|---|
Education | University of Glasgow University of Bristol |
Known for | Glasgow Haskell Compiler |
Awards | SIGPLAN Programming Languages Software Award (2011) |
Scientific career | |
Fields | Computer science |
Institutions | Microsoft Research Facebook, Meta Platforms (London) |
Simon Marlow is a British computer scientist, programmer, author, and co-developer of the Glasgow Haskell Compiler (GHC) for the programming language Haskell. He and Simon Peyton Jones won the SIGPLAN Programming Languages Software Award in 2011 for their work on GHC. Marlow's book Parallel and Concurrent Programming in Haskell was published in July 2013. [1]
Formerly of Microsoft Research, [2] Marlow has worked at Facebook since March 2013. The "noted Haskell guru" [3] is part of the team behind Facebook's open source Haxl project, [4] [5] a Haskell library that simplifies access to remote data. [6]
In 2011, he and Simon Peyton Jones were awarded the SIGPLAN Programming Languages Software Award for their work on GHC. [7] In 2019, Marlow was awarded the Most Influential ICFP Paper award for "Runtime Support for Multicore Haskell". [8] [9]
The Glasgow Haskell Compiler (GHC) is a native or machine code compiler for the functional programming language Haskell. It provides a cross-platform software environment for writing and testing Haskell code and supports many extensions, libraries, and optimisations that streamline the process of generating and executing code. GHC is the most commonly used Haskell compiler. It is free and open-source software released under a BSD license. The lead developers are Simon Peyton Jones and Simon Marlow.
SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.
In computer science, software transactional memory (STM) is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. It is an alternative to lock-based synchronization. STM is a strategy implemented in software, rather than as a hardware component. A transaction in this context occurs when a piece of code executes a series of reads and writes to shared memory. These reads and writes logically occur at a single instant in time; intermediate states are not visible to other (successful) transactions. The idea of providing hardware support for transactions originated in a 1986 paper by Tom Knight. The idea was popularized by Maurice Herlihy and J. Eliot B. Moss. In 1995, Nir Shavit and Dan Touitou extended this idea to software-only transactional memory (STM). Since 2005, STM has been the focus of intense research and support for practical implementations is growing.
The actor model in computer science is a mathematical model of concurrent computation that treats an actor as the basic building block of concurrent computation. In response to a message it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received. Actors may modify their own private state, but can only affect each other indirectly through messaging.
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
.
Concurrent Haskell extends Haskell 98 with explicit concurrency. Its two main underlying concepts are:
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.
In the theory of programming languages in computer science, deforestation is a program transformation to eliminate intermediate lists or tree structures that are created and then immediately consumed by a program.
xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell.
This article describes the features in the programming language Haskell.
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.
SequenceL is a general purpose functional programming language and auto-parallelizing compiler and tool set, whose primary design objectives are performance on multi-core processor hardware, ease of programming, platform portability/optimization, and code clarity and readability. Its main advantage is that it can be used to write straightforward code that automatically takes full advantage of all the processing power available, without programmers needing to be concerned with identifying parallelisms, specifying vectorization, avoiding race conditions, and other challenges of manual directive-based programming approaches such as OpenMP.
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.
Z3, also known as the Z3 Theorem Prover, is a satisfiability modulo theories (SMT) solver developed by Microsoft.
Simon Thompson is a research computer scientist, author, and an emeritus professor of the University of Kent, there specializing in logic and computation. His research into functional programming covers software verification and validation, programming tool-building, and software testing for the functional programming languages Erlang, Haskell, and OCaml. 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.