David A. Turner
   HOME





David A. Turner
David A. Turner (26 January 1946 – 19 October 2023) was a British computer scientist. He is best known for designing and implementing three programming languages, including the first for functional programming based on lazy evaluation, combinator graph reduction, and polymorphic types: SASL (1972), Kent Recursive Calculator (KRC) (1981), and the commercially supported Miranda (1985). Turner's work on Miranda had a strong influence on the later Haskell. Turner first implemented SASL using the abstract SECD machine, but then reimplemented them in 1978 using SKI combinator calculus. This approach was used by Thomas Johnsson and Lennart Augustsson in the design of the g-machine that evolved to become the standard mechanism for lazy evaluation in call-by-need languages. In 1981, Turner received the Doctor of Philosophy (D.Phil.) from the University of Oxford, for his dissertation "Aspects of the Implementation of Programming Languages: The Compilation of an Applicative La ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Battersea
Battersea is a large district in southwest London, part of the London Borough of Wandsworth, England. It is centred southwest of Charing Cross and also extends along the south bank of the Thames Tideway. It includes the Battersea Park. History Battersea is mentioned in the few surviving Anglo-Saxon geographical accounts as and later . As with many former parishes beside tidal flood plains the lowest land was reclaimed for agriculture by draining marshland and building culverts for streams. By the side of this was the River Heathwall, Heathwall tide mill in the north-east with a very long mill pond regularly draining and filling to the south. Battersea () appears in the Domesday Book of 1086 in Surrey within the Hundred (county division), hundred of Hundred_of_Brixton, Brixton () as a vast manor held by St Peter's Abbey, Westminster. Its ''Domesday'' assets were: 18 hide (unit), hides and 17 ploughlands of cultivated land; 7 gristmill, mills worth £42 9s 8d per year, of m ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Combinator Graph Reduction
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. Motivation A simple example of evaluating an arithmetic expression follows: : \begin & & &((2+2)+(2+2))+(3+3) \\ & &=&((2+2)+(2+2))+ 6 \\ & &=&((2+2)+ 4)+6 \\ & &=&(4+4)+6 \\ & &=&8+6 \\ & &=&14 \end The above reduction sequence employs a strategy known as outermost tree reduction. The same expression can be evaluated using innermost tree reduction, yielding the reduction sequence: : \begin & & &((2+2)+(2+2))+(3+3) \\ & &= &((2+2)+4)+(3+3) \\ & &= &(4+4)+(3+3) \\ & &= &(4+4)+6 \\ & &= &8+6 \\ & &= &14 \end Notice that the reduction order is made explicit by the addition of parentheses. This expression coul ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

ALGOL 68
ALGOL 68 (short for ''Algorithmic Language 1968'') is an imperative programming language member of the ALGOL family that was conceived as a successor to the ALGOL 60 language, designed with the goal of a much wider scope of application and more rigorously defined syntax and semantics. The complexity of the language's definition, which runs to several hundred pages filled with non-standard terminology, made compiler implementation difficult and it was said it had "no implementations and no users". This was only partly true; ALGOL 68 did find use in several niche markets, notably in the United Kingdom where it was popular on International Computers Limited (ICL) machines, and in teaching roles. Outside these fields, use was relatively limited. Nevertheless, the contributions of ALGOL 68 to the field of computer science have been deep, wide-ranging and enduring, although many of these contributions were only publicly identified when they had reappeared in subsequently develo ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


ALGOL 60
ALGOL 60 (short for ''Algorithmic Language 1960'') is a member of the ALGOL family of computer programming languages. It followed on from ALGOL 58 which had introduced code blocks and the begin and end pairs for delimiting them, representing a key advance in the rise of structured programming. ALGOL 60 was one of the first languages implementing function definitions (that could be invoked recursively). ALGOL 60 function definitions could be nested within one another (which was first introduced by any programming language), with lexical scope. It gave rise to many other languages, including CPL, PL/I, Simula, BCPL, B, Pascal, and C. Practically every computer of the era had a systems programming language based on ALGOL 60 concepts. Niklaus Wirth based his own ALGOL W on ALGOL 60 before moving to develop Pascal. Algol-W was intended to be the next generation ALGOL but the ALGOL 68 committee decided on a design that was more complex and advanced rather than a cleaned ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Specification (technical Standard)
A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard. There are different types of technical or engineering specifications (specs), and the term is used differently in different technical contexts. They often refer to particular documents, and/or particular information within them. The word ''specification'' is broadly defined as "to state explicitly or in detail" or "to be specific". A requirement specification is a documented requirement, or set of documented requirements, to be satisfied by a given material, design, product, service, etc. It is a common early part of engineering design and product development processes in many fields. A functional specification is a kind of requirement specification, and may show functional block diagrams. A design or product specification describes the features of the ''solutions'' for the Requirement Specificatio ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


International Federation For Information Processing
The International Federation for Information Processing (IFIP) is a global organisation for researchers and professionals working in the field of computing to conduct research, develop standards and promote information sharing. Established in 1960 under the auspices of UNESCO, IFIP is recognised by the United Nations and links some 50 national and international societies and academies of science with a total membership of over half a million professionals. IFIP is based in Laxenburg, Austria and is an international, non-governmental organisation that operates on a non-profit basis. Overview IFIP activities are coordinated by 14 Technical Committees (TCs) which are organised into more than 100 Working Groups (WGs), bringing together over 3,500 ICT professionals and researchers from around the world to conduct research, develop standards and promote information sharing. Each TC covers a particular aspect of computing and related disciplines, as detailed below. IFIP actively pr ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

International Standard
An international standard is a technical standard developed by one or more international standards organizations. International standards are available for consideration and use worldwide. The most prominent such organization is the International Organization for Standardization (ISO). Other prominent international standards organizations including the International Telecommunication Union (ITU) and the International Electrotechnical Commission (IEC). Together, these three organizations have formed the World Standards Cooperation alliance. Purpose International standards can be applied directly or adapted to meet local conditions. When adopted, they lead to the creation of national standards that are either equivalent to or largely align with the international standards in technical content, though they may have: (i) editorial variations, such as differences in appearance, the use of symbols, measurement units, or the choice of a point over a comma as the decimal marker, and (ii) va ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Call-by-need
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 (the ''binding strategy'') and whether to evaluate the parameters of a function call, and if so in what order (the ''evaluation 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. A programming language's evaluation strategy is part of its high-level semantics. Some languages, such as PureScript, have variants with different evaluation strategies. Some declarative languages, such as Datalog, support multiple evaluation strategies. The calling convention consists of the low-level platform-specific details of parameter passing. Example To illustrate, executing a function call f(a,b) may first evaluate th ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Lennart Augustsson
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. 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. Programming 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. He authored several hardware device drivers for the Berkeley Software Distribution (BSD) Unix operating system NetBSD. Languages Augustsson has developed several programming languages and implementations, including: * Cayenne * Haskell-B compiler (HBC) * Parallel Haskell (pH) compiler front end, from the Massachusetts Institute of Technology (MIT) * Bluespec ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Thomas Johnsson
Thomas Johnsson (born 8 December 1949) is a Swedish former breaststroke swimmer. He competed in three events at the 1968 Summer Olympics The 1968 Summer Olympics (), officially known as the Games of the XIX Olympiad () and officially branded as Mexico 1968 (), were an international multi-sport event held from 12 to 27 October 1968, in Mexico City, Mexico. These were the first Ol .... References External links * 1949 births Living people Swedish male breaststroke swimmers Olympic swimmers for Sweden Swimmers at the 1968 Summer Olympics Swimmers from Västra Götaland County Skövde SS swimmers 20th-century Swedish sportsmen Sportspeople from Skövde {{Sweden-swimming-bio-stub ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


SKI Combinator Calculus
The SKI combinator calculus is a combinatory logic system and a computational system. It can be thought of as a computer programming language, though it is not convenient for writing software. Instead, it is important in the mathematical theory of algorithms because it is an extremely simple Turing complete language. It can be likened to a reduced version of the untyped lambda calculus. It was introduced by Moses Schönfinkel and Haskell Curry. All operations in lambda calculus can be encoded via abstraction elimination into the SKI calculus as binary trees whose leaves are one of the three symbols S, K, and I (called ''combinators''). Notation Although the most formal representation of the objects in this system requires binary trees, for simpler typesetting they are often represented as parenthesized expressions, as a shorthand for the tree they represent. Any subtrees may be parenthesized, but often only the right-side subtrees are parenthesized, with left associativity ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]