Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Transformations and reduction strategies for typed lambda expressions
Georgeff M. ACM Transactions on Programming Languages and Systems6 (4):603-631,1984.Type:Article
Date Reviewed: Dec 1 1985

Georgeff’s paper describes some schemes by which function-valued expressions under static scoping can be efficiently evaluated using a variant of SECD machines, as well as stack machines. One SECD variant transforms expressions into simple forms which can be evaluated in a stacklike runtime environment. Note that a typical SECD machine transforms expressions into tree-like environments. Another scheme of Georgeff’s describes a stack-machine that directly evaluates function-valued expressions without prior transformation of the expressions to simple form.

Transformations of expressions into simple form results in environmental structures that are stacklike. Two such compile-time transformations were developed in the paper. The author points out that transformation to simple form results in an increase in the number of transitions on the SECD machine by an arbitrary large factor. However, the evaluation of the transformed expression in a stacklike environment may still be more efficient than in the original (heap) environment. The reader is reminded that the final runtime efficiency of any evaluation scheme depends on the types of programs being run.

Georgeff also shows how the simple-form scheme and the direct-evaluation scheme could be used to extend the standard procedural languages in order to allow function-valued functions without the need for any additional runtime machinery.

The stack machines that are described and extended in this paper are variants of SECD machines. These variants exploit the notion of typed lambda expressions. Typed lambda expressions are defined using the notion of reduced reflexive types [1]. “An expression is a reducing reflexive type if it can act as a function in a (possibly) reflexive domain, but, when applied to sufficient arguments, results in a basic-valued expression.”

This paper is an extension of [2]. The extension provides some additional formalism, many examples, and more background material. Note, however, that many paragraphs, algorithms, and sections come from the author’s earlier paper.

Reviewer:  J. Lowther Review #: CR108916
1) Astesiano, E.; and Costa, G.Languages with reducing reflexive types, in Automata, languages and programming (Lecture Notes in Computer Science, vol. 85), Springer-Verlag, New York, 1980, 38–50.
2) Georgeff, M. P.A scheme for implementing functional values on a stack machine, in Conf. record of the 1982 ACM symposium on LISP and functional programming (August 15–18, 1982). ACM New York, 188–195.
Bookmark and Share
 
Program Editors (D.2.3 ... )
 
 
Lambda Calculus And Related Systems (F.4.1 ... )
 
 
Applicative (Functional) Programming (D.1.1 )
 
 
Processors (D.3.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Program Editors": Date
A display editor with random access and continuous control
Hammer J. International Journal of Man-Machine Studies 21(3): 203-212, 1984. Type: Article
Dec 1 1985
Showing programs on a screen
Meyer B., Nerson J. (ed), Ko S. Science of Computer Programming 5(2): 111-142, 1985. Type: Article
Dec 1 1985
Row replacement algorithms for screen editors
Meyers E., Miller W. ACM Transactions on Programming Languages and Systems 11(1): 33-56, 1989. Type: Article
Apr 1 1990
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy