A new implementation technique for applicative languages

@article{Turner1979ANI,
  title={A new implementation technique for applicative languages},
  author={D. Turner},
  journal={Software: Practice and Experience},
  year={1979},
  volume={9}
}
  • D. Turner
  • Published 1979
  • Computer Science
  • Software: Practice and Experience
It is shown how by using results from combinatory logic an applicative language, such as LISP, can be translated into a form from which all bound variables have been removed. A machine is described which can efficiently execute the resulting code. This implementation is compared with a conventional interpreter and found to have a number of advantages. Of these the most important is that programs which exploit higher order functions to achieve great compactness of expression are executed much… Expand
Another Implementation Technique for Applicative Languages
TLDR
This paper will present a particularly simple data flow model which is similar to supercombinator reduction, supporting higher order functions, garbage collection and a form of lazy evaluation in a clear and natural manner. Expand
A pragmatic approach to the analysis and compilation of lazy functional languages
TLDR
A methodology for describing the optimisations and code generation for such a compiler, which allows the exploitation of many standard and some new techniques in a clear and concise notation is presented. Expand
Experience with an applicative string processing language
TLDR
The major conclusions are: Applicative programming can be made more natural through the use of built-in iterative operators and post-fix notation and Clever evaluation strategies can make applicative programming more computationally efficient. Expand
A syntactic approach to program transformations
TLDR
Kid, a language for expressing compiler oPtirnizations for functional languages is introduced, which goes beyond ,4-calcnlus by including I-structures which are essential to express efficient translations of list and array comprehensions. Expand
Deriving Target Code as a Representation of Continuation Semantics
  • M. Wand
  • Computer Science, Mathematics
  • TOPL
  • 1982
TLDR
Reynolds' technique for deriving interpreters is extended to derive compilers from continuation semantics to simplify the semantics of a program phrase and build a machine to interpret the terms. Expand
Efficient compilation of lazy evaluation
TLDR
The principles underlying an efficient implementation of a lazy functional language, compiling to code for ordinary computers, based on combinator-like graph reduction: the user defined functions are used as rewrite rules in the graph. Expand
Efficient compilation of lazy evaluation
TLDR
The principles underlying an efficient implementation of a lazy functional language, compiling to code for ordinary computers, based on combinator-like graph reduction: the user defined functions are used as rewrite rules in the graph. Expand
Microprogrammed implementation of a reduction machine
TLDR
The paper shows the relevant aspects of the reduction machine design and the current stage of the project and develops interpreters in the C language, in ASSEMBLY language, and finally a microprogrammed version of the target architecture. Expand
A Dataflow Implementation Technique for Lazy Typed Functional Languages ∗
This paper presents an efficient alternative to the reduction-based implementations of functional languages. The proposed technique systematically eliminates user-defined functions by appropriatelyExpand
Very fast reduction machine for functional programming without variables
TLDR
The paper presents a new programming language and its reduction machine based on the unusual concepts of functional form issued from FP systems and uncurryfied combinator from combinatory logic that runs very efficiently on classical Von Neumann architectures and can be used to implement other functional languages. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 18 REFERENCES
A lazy evaluator
A different way to execute pure LISP programs is presented. It delays the evaluation of parameters and list structures without ever having to perform more evaluation steps than the usual method.Expand
Throw‐away compiling
  • P. Brown
  • Computer Science
  • Softw. Pract. Exp.
  • 1976
TLDR
A method of compiling called ‘throw‐away compiling’ is presented that combines the merits of compilation and interpretation, specially suitable for small machines, especially those without virtual memory. Expand
The Mechanical Evaluation of Expressions
TLDR
It is shown how some forms of expression in current programming languages can be modelled in Church's X-notation, and a way of "interpreting" such expressions is described, which suggests a method of analyzing the things computer users write. Expand
Another Algorithm for Bracket Abstraction
  • D. Turner
  • Mathematics, Computer Science
  • J. Symb. Log.
  • 1979
Much of the notation used in logic and mathematics can be recast in the following uniform syntax. A term is either an atom (i.e. a constant or a variable) or else it is of the form A B where A and BExpand
On the recursive programming techniques
TLDR
One of the books you can enjoy now is recursive programming techniques here and it is your own time to continue reading habit. Expand
CONS Should Not Evaluate its Arguments
University of St
  • Andrews,
  • 1976
Throw-away compiling', Software-Practice and Experience
  • Languages and Programming
  • 1971
The Implementation of Algol 60
  • The Implementation of Algol 60
  • 1964
and L
  • J. Russell, The Implementation of Algol 60, Academic Press,
  • 1964
...
1
2
...