Lennart Augustsson

Last updated
Lennart Augustsson
Known for Bluespec first compiler, Lazy ML language, Cayenne language, HBC Haskell compiler, parallel Haskell compiler front end, NetBSD device drivers, early LPMud work
Scientific career
Fields Computer science, functional programming
InstitutionsCarlstedt Research and Technology, Sandburst, Credit Suisse, Standard Chartered Bank, Facebook, X Development, Google, Epic Games, Chalmers University of Technology

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. [1]

Contents

Augustsson has worked for Carlstedt Research and Technology, Sandburst, Credit Suisse, Standard Chartered Bank, Facebook, X Development, Google and is currently employed by Epic Games. [2]

Programming

Augustsson has authored several hardware device drivers for NetBSD. [3]

Languages

Augustsson has developed several programming languages and implementations, including:

Augustsson was intimately involved in early development of the multi-user dungeon (MUD) LPMud, both in the LPMUD driver and the CD mudlib. His MUD community pseudonym is Marvin.

Augustsson has written three winning entries in the International Obfuscated C Code Contest:

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.

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.

A graph reduction machine is a special-purpose computer built to perform combinator calculations by graph reduction.

<span class="mw-page-title-main">Clean (programming language)</span>

Clean is a general-purpose purely functional computer programming language. It was called the Concurrent Clean System, then the Clean System, later just Clean. Clean has been developed by a group of researchers from the Radboud University in Nijmegen since 1987.

ISWIM is an abstract computer programming language devised by Peter Landin and first described in his article "The Next 700 Programming Languages", published in the Communications of the ACM in 1966.

Curry is an experimental functional logic programming language, based on the Haskell language. It merges elements of functional and logic programming, including constraint programming integration.

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.

In computer science, graph reduction implements an efficient version of non-strict evaluation, an evaluation strategy where the arguments to a function are not immediately evaluated. This form of non-strict evaluation is also known as lazy evaluation and used in functional programming languages. The technique was first developed by Chris Wadsworth in 1971.

Hope is a small functional programming language developed in the 1970s at the University of Edinburgh. It predates Miranda and Haskell and is contemporaneous with ML, also developed at the University. Hope was derived from NPL, a simple functional language developed by Rod Burstall and John Darlington in their work on program transformation. NPL and Hope are notable for being the first languages with call-by-pattern evaluation and algebraic data types.

MultiLisp is a functional programming language, a dialect of the language Lisp, and of its dialect Scheme, extended with constructs for parallel computing execution and shared memory. These extensions involve side effects, rendering MultiLisp nondeterministic. Along with its parallel-programming extensions, MultiLisp also had some unusual garbage collection and task scheduling algorithms. Like Scheme, MultiLisp was optimized for symbolic computing. Unlike some parallel programming languages, MultiLisp incorporated constructs for causing side effects and for explicitly introducing parallelism.

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

In a programming language, an evaluation strategy is a set of rules for evaluating expressions. The term is often used to refer to the more specific notion of a parameter-passing strategy that defines the kind of value that is passed to the function for each parameter and whether to evaluate the parameters of a function call, and if so in what order. The notion of reduction strategy is distinct, although some authors conflate the two terms and the definition of each term is not widely agreed upon.

Bluespec, Inc. is an American semiconductor tool design company co-founded by Massachusetts Institute of Technology (MIT) professor Arvind in June 2003 and based in Framingham, Massachusetts. Arvind had formerly founded Sandburst in 2000, which specialized in producing chips for 10 Gigabit Ethernet (10GE) routers, for this task. Bluespec has two product lines which are primarily for application-specific integrated circuit (ASIC) and field-programmable gate array (FPGA) hardware designers and architects. Bluespec supplies high-level synthesis with register-transfer level (RTL). The first Bluespec workshop was held on August 13, 2007, at MIT.

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

Arvind is the Johnson Professor of Computer Science and Engineering in the Computer Science and Artificial Intelligence Laboratory (CSAIL) at the Massachusetts Institute of Technology (MIT). He is a Fellow of the Institute of Electrical and Electronics Engineers (IEEE) and the Association for Computing Machinery (ACM). He was also elected as a member into the National Academy of Engineering in 2008 for contributions to dataflow and multithread computing and the development of tools for the high-level synthesis of digital electronics hardware.

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">PureScript</span> Strongly-typed language that compiles to JavaScript

PureScript is a strongly-typed, purely-functional programming language that transpiles to JavaScript, C++11, Erlang, and Go. It can be used to develop web applications, server side apps, and also desktop applications with use of Electron or via C++11 and Go compilers with suitable libraries. Its syntax is mostly comparable to that of Haskell. In addition, it introduces row polymorphism and extensible records. Also, contrary to Haskell, the PureScript language is defined as having a strict evaluation strategy, although there are non-conforming back ends which implement a lazy evaluation strategy.

Futhark is a functional data parallel array programming language originally developed at UCPH Department of Computer Science (DIKU) as part of the HIPERFIT project. It focuses on enabling data parallel programs written in a functional style to be executed with high performance on massively parallel hardware, in particular on graphics processing units (GPUs). Futhark is strongly inspired by NESL, and its implementation uses a variant of the flattening transformation, but imposes constraints on how parallelism can be expressed in order to enable more aggressive compiler optimisations. In particular, irregular nested data parallelism is not supported.

References

  1. "Commercial Users of Functional Programming – Lennart Augustsson". Archived from the original on 8 February 2012. Retrieved 18 September 2016.
  2. "Lennart Augustsson". LinkedIn profile. Retrieved 29 March 2017.
  3. "Chapter 13 USB Devices" . Retrieved 18 September 2016.
  4. Augustsson, Lennart (1998). Cayenne – a language with dependent types. ICFP '98. Proceedings of the third ACM SIGPLAN international conference on Functional programming. pp. 239–250. CiteSeerX   10.1.1.47.155 . doi: 10.1145/289423.289451 . S2CID   18331937.
  5. "Haskell Implementations". Haskell.org. 30 September 2022. Retrieved 10 November 2023.
  6. "pH: Parallel Haskell". Massachusetts Institute of Technology: Computation Structures Group. Retrieved 18 September 2016.
  7. Augustsson, Lennart (17 January 2003). Bluespec: Designer's Perspective (PDF) (Report). Sandburst Corporation.
  8. 1 2 Augustsson, Lennart (1984). A Compiler for Lazy ML. LFP '84. Proceedings of the 1984 ACM Symposium on LISP and functional programming. pp. 218–227. doi: 10.1145/800055.802038 . S2CID   11365842.