Graph Reduction
   HOME





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

Computer Science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, applied disciplines (including the design and implementation of Computer architecture, hardware and Software engineering, software). Algorithms and data structures are central to computer science. The theory of computation concerns abstract models of computation and general classes of computational problem, problems that can be solved using them. The fields of cryptography and computer security involve studying the means for secure communication and preventing security vulnerabilities. Computer graphics (computer science), Computer graphics and computational geometry address the generation of images. Programming language theory considers different ways to describe computational processes, and database theory concerns the management of re ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Expression Graph Reduction
Expression may refer to: Linguistics * Expression (linguistics), a word, phrase, or sentence * Expression (mathematics), Symbolic description of a mathematical object * Fixed expression, a form of words with a specific meaning * Idiom, a type of fixed expression * Metaphorical expression, a particular word, phrase, or form of words that has a different meaning than its literal form * Expression (sign language), the expressions and postures of the face and body that contribute to the formation of words when signing Symbolic expression * Expression (architecture), implies a clear and authentic displaying of the character or personality of an individual person * Expression (mathematics), a symbolic description of a mathematical object * Expression (computer science), an instruction to execute something that will return a value * Regular expression, a means of matching strings of text in computing * Expression marks, in music, notating the musical dynamics * Symbolic computation ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Implementation Of Functional Programming Languages
Implementation is the realization of an application, execution of a plan, idea, model, design, specification, standard, algorithm, policy, or the administration or management of a process or objective. Industry-specific definitions Information technology In the information technology industry, implementation refers to the post-sales process of guiding a client from purchase to use of the software or hardware that was purchased. This includes requirements analysis, scope analysis, customizations, systems integrations, user policies, user training and delivery. These steps are often overseen by a project manager using project management methodologies. Software Implementations involve several professionals that are relatively new to the knowledge based economy such as business analysts, software implementation specialists, solutions architects, and project managers. To implement a system successfully, many inter-related tasks need to be carried out in an appropriate sequence. U ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


SECD Machine
The SECD machine is a highly influential (see: '' Landin's contribution'') virtual machine and abstract machine intended as a target for compilers of functional programming languages. The letters stand for stack, environment, control, dump, respectively, which are the internal registers of the machine. The registers stack, control, and dump point to (some realizations of) stacks, and environment points to (some realization of) an associative array. The machine was the first to be specifically designed to evaluate lambda calculus expressions. It was originally described by Peter Landin in "The Mechanical Evaluation of Expressions" in 1964. The description published by Landin was fairly abstract, and left many implementation choices open (like an operational semantics). Lispkit Lisp was an influential compiler based on the SECD machine, and the SECD machine has been used as the target for other systems such as Lisp/370. In 1989, researchers at the University of Calgary worked o ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Graph Reduction Machine
A graph reduction machine is a special-purpose computer built to perform combinator calculations by graph reduction. Examples include the SKIM ("S-K-I machine") computer, built at the University of Cambridge Computer Laboratory, the multiprocessor GRIP ("Graph Reduction In Parallel") computer, built at University College London, and the Reduceron, which was implemented on an Field-programmable gate array, FPGA with the single purpose of executing Haskell. See also *SECD machine References Further reading *T. J. W. Clarke, P. Gladstone, C. MacLean, A. C. Norman: ''SKIM — The S, K, I Reduction Machine''. LISP Conference, 1980: 128–135 External linksReduction Machines
Parallel Functional Programming: An Introduction, Kevin Hammond Applicative computing systems Functional programming University of Cambridge Computer Laboratory {{Compu-hardware-stub ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


SASL Programming Language
SASL (St Andrews Static Language, alternatively St Andrews Standard Language) is a purely functional programming language developed by David Turner at the University of St Andrews in 1972, based on the applicative subset of ISWIM. In 1976 Turner redesigned and reimplemented it as a non-strict (lazy) language. In this form it was the foundation of Turner's later languages Kent Recursive Calculator (KRC) and Miranda, but SASL appears to be untyped whereas Miranda has polymorphic types. Burroughs Corporation The Burroughs Corporation was a major American manufacturer of business equipment. The company was founded in 1886 as the American Arithmometer Company by William Seward Burroughs I, William Seward Burroughs. The company's history paralleled many ... used SASL to write a compiler and operating system. Notes References * * External links The SASL Language Manual Academic programming languages Functional languages History of computing in the United Kingdo ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


David Turner (computer Scientist)
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

Data Structure
In computer science, a data structure is a data organization and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the relationships among them, and the Function (computer programming), functions or Operator (computer programming), operations that can be applied to the data, i.e., it is an algebraic structure about data. Usage Data structures serve as the basis for abstract data types (ADT). The ADT defines the logical form of the data type. The data structure implements the physical form of the data type. Different types of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example, Relational database, relational databases commonly use B-tree indexes for data retrieval, while compiler Implementation, implementations usually use hash tables to look up Identifier (computer languages), identifiers. Data s ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Combinator
Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. It was introduced by Moses Schönfinkel and Haskell Curry, and has more recently been used in computer science as a theoretical model of computation and also as a basis for the design of functional programming languages. It is based on combinators, which were introduced by Schönfinkel in 1920 with the idea of providing an analogous way to build up functions—and to remove any mention of variables—particularly in predicate logic. A combinator is a higher-order function that uses only function application and earlier defined combinators to define a result from its arguments. In mathematics Combinatory logic was originally intended as a 'pre-logic' that would clarify the role of quantified variables in logic, essentially by eliminating them. Another way of eliminating quantified variables is Quine's predicate functor logic. While the expressive power of combinatory logi ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Eager Evaluation
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 evaluat ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Expression Graph
Expression may refer to: Linguistics * Expression (linguistics), a word, phrase, or sentence * Expression (mathematics), Symbolic description of a mathematical object * Fixed expression, a form of words with a specific meaning * Idiom, a type of fixed expression * Metaphorical expression, a particular word, phrase, or form of words that has a different meaning than its literal form * Expression (sign language), the expressions and postures of the face and body that contribute to the formation of words when signing Symbolic expression * Expression (architecture), implies a clear and authentic displaying of the character or personality of an individual person * Expression (mathematics), a symbolic description of a mathematical object * Expression (computer science), an instruction to execute something that will return a value * Regular expression, a means of matching strings of text in computing * Expression marks, in music, notating the musical dynamics * Symbolic computation ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]