143 citations found. Retrieving documents...
Turner, David A. A new implementation technique for applicative languages. Software --- Practice and Experience, 9, 1 (January 1979) 31-- 49.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Combinatory Logic and Natural Language Parsing - Bozsahin   (Correct)

....introduce complications such as scope and binding (i.e. the environment) abstraction without variables purportedly puts less of a burden on processing due to lesser bookkeeping in a combinatory system. An analogy can be made here to similar reasons of economy in artificial languages: Turner [12] describes a combinatory system for purely applicative LISP in which all occurences of variables are removed during compilation so as to obtain an object code that can run more efficiently, since it does not require environment creation and deletion, a time consuming task at run time. Extensive ....

D. A. Turner. A new implementation technique for applicative languages. Software---Practice and Experience, 9:31--49, 1979. 21


Value Recursion in Monadic Computations - Erkok (2002)   (2 citations)  (Correct)

....is modeled via least fixed points. We use monads to model e#ects, following Moggi [63] Although by no means comprehensive, the reader may find it useful to skim over Appendix A, which contains a brief review of fixed point operators. We expect readers to be familiar with functional programming [35, 87], particularly Haskell [7, 68] For the most part, we use Haskell simply as a syntactically beefed up version of # calculus [30] so familiarity with any functional language should be su#cient. A basic understanding of domain theoretic semantics of programming languages is necessary to follow the ....

Turner, D. A. A new implementation technique for applicative languages. Software Practice and Experience 9, 1 (Jan. 1979), 31--49. (10)


Sharing of Computations - Amtoft (1993)   (1 citation)  (Correct)

....reductions, instead of the # calculus: One does not have to worry about free variables getting bound by # reduction (this problem being a main reason why the bottommost spine redex strategy may be considered unfeasible in practice [Jon87, p. 200] For SKI combinators, as defined in [Tur79] the trick to obtain the e#ects of fully lazy evaluation is [Jon87, p. 267] to incorporate the rule S (K p) K q) K (p q) 37 . If one wants to include constants (like if and plus) what we surely will do for modeling practical applications, the language will anyway get the flavor of a ....

D. A. Turner. A new implementation technique for applicative languages. Software - Practice and Experience, 9:31--49, 1979.


Programming Paradigms as Object Classes: A Structuring Mechanism .. - Spinellis (1994)   (3 citations)  (Correct)

....within a functional framework can be realised in two different ways [WW88] The convenient method, as implemented by ML [Mil85, MH88, MHMA89, AM87] and Scheme [REA 86] is to introduce primitive operations with side effects. The pure method, as implemented in LispKit Lisp [HJJ83] and SASL [Tur79] exploits the capabilities of lazy evaluation to treat I O and data base handling primitives as specific instances of stream valued stream functions. Applicative state transition systems are described in [Bac78a, pp. 635 638] We found nine languages that combine the functional and imperative ....

D. A. Turner. A new implementation technique for applicative languages. Software: Practice & Experience, 9(1):31--49, January 1979.


Higher Order Attribute Grammars - Swierstra, Vogt (1991)   (17 citations)  (Correct)

....to generate code which will perform the copying and substitution for this inner A expression. The second of these disadvantages may be solved by employing graph reduction instead of string reduction. Common sub expressions may be shared in this representation. To remedy the other three problems [Turner 79a] shows how any lambda expression may be compiled into an equivalent expression consisting of SKI combinators and standard functions only. In the resulting implementation the expressions are copied and substituted by need by applying the simple reduction rules associated with these combinators. ....

Turner, D.A., A New Implementation Technique for Applicative Languages In Software, Practice and Experience, vol. 9, pages 31-49, 1979.


Implementing Distributed Systems Using Linear Naming - Bawden (1993)   (3 citations)  (Correct)

....is done may vary from application to application, but there are some common ideas that are set forth in this section. The basic idea is to translate the program to be executed into a linear graph grammar a collection of types and methods. This is different from the original combinator model [Tur79] where the program becomes a graph, and the set of vertex types and reduction rules are fixed from the start. All of the properties of the program must be encoded somehow in a set of methods. The fact that applicable methods are selected nondeterministically means that ordering constraints in ....

....other similar examples where nonlinearity has been making itself felt for years. 7.1. 2 Graph reduction There is not a strong connection between linear graph reduction and most other graph reduction systems, because the key notion of linearity is generally missing from more traditional systems [Tur79, Pey87] In traditional graph reduction systems all vertices represent either values or expressions that will soon normalize into values. When linear graph reduction is used to model a real system, such as the Scheme system constructed above, vertices are used for a wide variety of purposes ....

D. A. Turner. A new implementation technique for applicative languages. Software---Practice and Experience, 9(1):31--49, January 1979.


Abstract Machines for Programming Language Implementations - Diehl, Hartel, Sestoft (2000)   (6 citations)  (Correct)

....all expressions referring to it. However, repeatedly searching a graph for subexpressions to rewrite is slow. Early implementations compiled the program to a fixed set of combinators (closed lambda terms all of whose abstractions are at the head) these may be thought of as graph rewriting rules [123]. Later it was shown to be beneficial to let the program under consideration guide the choice of combinators (so called supercombinators) 62] In his seminal paper [123] David Turner describes the SK machine to support the implementation of SASL. The compiler is based on the equivalence ....

.... (closed lambda terms all of whose abstractions are at the head) these may be thought of as graph rewriting rules [123] Later it was shown to be beneficial to let the program under consideration guide the choice of combinators (so called supercombinators) 62] In his seminal paper [123], David Turner describes the SK machine to support the implementation of SASL. The compiler is based on the equivalence between combinatory logic [113] and the # calculus [40] It generates code for what is essentially a two 744 S. Diehl et al. Future Generation Computer Systems 16 (2000) ....

D.A. Turner, A new implementation technique for applicative languages, Software -- Practice and Experience 9 (1979) 31-- 49.


A Framework for Defining Object-Calculi - Lang, Lescanne, Liquori (1999)   (2 citations)  (Correct)

....mutation of objects. This makes our framework more abstract, as it involves no particular structure for computing. Moreover it provides a small step semantics of object mutation. This is in fact a generalization of Wadsworth s graph reduction technique of implementation of functional languages [23, 21], which, by essence, forbids destructive updates. Moreover, our graphs are represented as special terms, called addressed terms, exploiting the idea of simultaneous rewriting, already mentioned in [18, 4] and slightly generalized in this paper (see [13] The framework Obj a is much more ....

D. A. Turner. A new implementation technique for applicative languages. Software Practice and Experience, 9:31--49, 1979.


Compilation of a Specialized Functional Language for.. - Fradet, Mallet (2000)   (2 citations)  (Correct)

....and can be described as L 3 ABS L 4 DIST L 5 OPT L 6 INRIA Compilation of a Specialized Functional Language for Parallel Computers 21 7. 1 ABS Transformation The transformation ABS is comparable to the abstraction algorithms used to compile the fi reduction with combinators [Tur79] Each expression E with is transformed into a expression such that (ABS[ E] Gamma X ) Gamma X = E; Gamma X ) where Gamma X is made of nested pairs representing the free variables of E. Initially Gamma X represents the program input variables. More generally, Gamma X ....

D. A. Turner. A new implementation technique for applicative languages. Software Practice and Experience, 9:3149, 1979.


Stability, Sequentiality and Demand Driven Evaluation in Dataflow - Avron, Sasson (2001)   (Correct)

....is needed to make it work. Two important remarks: First, although the specific target of the present paper is to improve theoretical results of Arvind and Pingali ( PiA85, Pin86] the topic of demand driven dataflow should be framed in the wider context of interpreting applicative languages ([Tur79]) The idea has indeed been tested by Richmond s implementation ( Ric82] of Turner s Sasl language, running on the Manchester dataflow hardware. Second, despite the fact that the paper heavily draws on these works of A P, we have made a great effort to make it selfcontained, and so no ....

Turner D.: A New Implementation Technique for Applicative Languages. Software --- Practice & Experience, 9(1), pp. 31--39, 1979.


Higher Order Function Synthesis Through Proof Planning - Cook, Ireland, Michaelson (2001)   (1 citation)  (Correct)

....observed in 1971: Note that [the Church Rosser theorem] essentially states that lambda expressions can be evaluated by asynchronous multiprocesssing applied in arbitrary order to local subexpressions. page 185 Early work on functional parallelism focussed on reduction of Curry combinators [Tur79] lifted automatically from functional programs, but these proved of too low granularity for efficient parallel evaluation [Sto84] Somewhat more success has obtained from parallel reduction of super combinators[Hug84] found by lifting maximal free expressions from functional programs, but these ....

D. A. Turner. A New Implementation Technique for Applicative Languages. Software Practice and Experience, 9:31--49, 1979.


A Debugging Environment for Lazy Functional Languages - Lapalme, al. (1999)   (1 citation)  (Correct)

....show what problems are involved and our approach to solving them in a prototype implementation. 1. Introduction Functional programming languages using lazy evaluation have shown a great potential for all kind of applications. New implementation techniques based on graph reductions of combinators [12] and supercombinators [1] allow an ecient use of the computer for such programs. As they involve some modi cations of the underlying graph structure of the programs, classical debugging tools such as traces or stack frames printouts are inadequate. Lazy evaluation delaying the computation of an ....

....that gave the resulting value. When an interruption occurs, these annotations are printed in a meaningful way. Snyder[11] describes a method called lazy debugging for deferring debugging decisions until run time in lazy functional programs. The execution model uses the Turner combinators [12]; by keeping appropriate information, it reconstructs a meaningful source like representation of the original program. The approach is interesting and suggests the use of traces and breakpoints similar to the ones we have de ned, unfortunately his current system does not yet make a clear ....

Turner, D. A. A new implementation technique for applicative languages. Software - Practice and Experience, 9 (1979) 31-49. A DEBUGGING ENVIRONMENT FOR LAZY FUNCTIONAL LANGUAGES 17


Recursion is a Computational Effect - Friedman, Sabry (2000)   (1 citation)  (Correct)

.... (F x) with the value v, and perform the update to x before evaluating (F x) With this simplification, the operational definition of (fix F ) reduces to evaluating the following graph: fix F Gamma F j i oe 2 which is just an efficient representation of the unfolding definition [31]. But like many equivalences that hold in pure calculi, the equivalence of two views of recursion does not hold in a language with computational effects, e.g. Scheme or the monadic sublanguage of Haskell. We therefore investigate both approaches. In fact, we define and implement three fixpoint ....

Turner, D. A. A new implementation technique for applicative languages. Software -- Practice and Experience 9 (1979), 31--49.


A Generic Object-Calculus Based on Addressed Term.. - Dougherty, Lang.. (2001)   (Correct)

....by considering the state of the object as what has been computed so far [ASS85] The semantics of sharing. Ecient implementations of lazy functional languages (or of computer algebras) require some sharing mechanism to avoid multiple computations of a single argument. Term graphs [Wad71, Tur79, BVEG 87, Plu99] have been studied as a representation of program expressions intermediate between abstract syntax trees and concrete representations in memory, and term graph rewriting provides a formal operational semantics of functional programming sensitive to sharing. However, compared ....

D. A. Turner. A new implementation technique for applicative languages. Software Practice and Experience, 9:31-49, 1979.


The implementation of the Gofer functional programming system - Jones (1994)   (45 citations)  (Correct)

....technique; we would expect to find similar components in any implementation of a non strict functional language. On the other hand, lambda lifting is not essential for the compilation of such languages; for example, lambda lifting is not required for either of the implementations by Turner 37 [52] or Peyton Jones [34] The only reason for including a lambda lifter in Gofer is to transform Gofer programs to a form that can be compiled for execution on the Gofer abstract machine, a variation on the Chalmers G machine, that is described in Section 9. 8.3.1 A simple example Lambda lifting ....

David A. Turner. A new implementation technique for applicative languages. Software--- Practice and Experience, 9:31--49, 1979.


Using pi-RED as a Teaching Tool for Functional.. - Kluge, Rathsack, Scholz   (Correct)

....and to enhance their . creativity in specifying, designing and reasoning about their programs by relieving them of the need to carry out pencil and paper calculations . Unfortunately, almost all functional systems proposed and implemented to date do not support stepwise program execution [Turn76, John83, Car83, Plas93, Pey92]. Functions (abstractions) are usually compiled to code of some abstract or real machine which constructs and reduces graph representations of the program terms to be evaluated. Since intermediate states of program execution are distributed over program counters, stacks, registers and heap ....

Turner, D.A.: A New Implementation Technique for Applicative Languages Software Practice and Experience, Vol. 9, No. 1,1979, pp. 31-49


LISP AND SYMBOLIC COMPUTATION: An International.. - Call-By-Need And..   (Correct)

No context found.

Turner, David A. A new implementation technique for applicative languages. Software --- Practice and Experience, 9, 1 (January 1979) 31-- 49.


In Search of a Program Generator to Implement.. - Cohen, Donadio.. (2005)   (Correct)

No context found.

D. A. Turner, A new implementation technique for applicative languages, Software -- Practice and Experience 9 (1) (1979), pp. 31--49.


In Search of a Program Generator to Implement.. - Cohen, Donadio.. (2005)   (Correct)

No context found.

D. A. Turner, A new implementation technique for applicative languages, Software -- Practice and Experience 9 (1) (1979), pp. 31--49.


The AMEN architecture. - Peter Hancock Abandoned   (Correct)

No context found.

D.A. Turner. A new implementation technique for applicative languages. Software - Practice and Experience, 9:31-49, 1979.


Demonstrating Lambda Calculus Reduction - Peter Sestoft Department (2002)   (1 citation)  (Correct)

No context found.

Turner, D.A.: A New Implementation Technique for Applicative Languages. Software -- Practice and Experience 9 (1979) 31--49.


Analysis and Efficient Implementation of Functional Programs - Sestoft (1991)   (43 citations)  (Correct)

No context found.

D.A. Turner. A new implementation technique for applicative languages. Software -- Practice and Experience, 9:31--49, 1979.


the Garbage Collection Bibliography - Richard Jones (2003)   (Correct)

No context found.

David A. Turner. A new implementation technique for applicative languages. Software Practice and Experience, 9, 1979.


Compilation of Functional Languages Using Flow Graph Analysis - Hartel, Glaser, Wild (1994)   (3 citations)  (Correct)

No context found.

D. A. Turner, `A new implementation technique for applicative languages', Software---Practice and Experience, 9(1), 31--49 (1979).


Data Structure Management in a Data Flow Computer System - Guharoy (1985)   (Correct)

No context found.

Turner, D.A. "A New Implementation Technique for Applicative Languages". Software - Practice and Experience 9 (1979), 31-49.

First 50 documents  Next 50

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC