MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Non-Strict Languages - Programming and Implementation (1994) [19 citations — 0 self]

by S. C. Wray ,  J. Fairbairn
Add To MetaCart

Abstract:

Non-strict evaluation improves the expressive power of functional languages at the expense of an apparent loss of efficiency. In this paper we give examples of this expressive power, taking as an example an interactive functional program and describing the programming techniques depending on non-strict evaluation which improved its design. Implementation methods for non-strict languages have delivered poor performance precisely when such programming techniques have been used. This need not be the case, however, and in the second part of the paper we describe Tim, a method of implementing non-strict languages for which the penalty for using lazy evaluation is very small. 1 Introduction Effort in the functional programming community is today divided into two main activities: making efficient implementations of functional languages and exploiting the expressive power of these languages by writing elegant programs. To a large extent these activities are carried out by separate groups of p...

Citations

1122 Introduction to Functional Programming – Bird, Wadler - 1988
166 A new implementation technique for applicative languages – Turner - 1979
144 Lambda Lifting: Transforming Programs to Recursive Equations – Johnsson - 1985
80 A compiler for lazy ML – AUGUSTSSON - 1984
72 CONS should not evaluate its arguments – Friedman, Wise - 1976
45 The spineless tagless g-machine – Jones, Salkild - 1989
38 Tim: A Simple, Lazy Abstract Machine to Execute Supercombinators – Fairbairn, Wray - 1987
30 The functional abstract machine – Cardelli - 1983
10 Implementation and programming techniques for functional languages – Wray - 1986
9 Code Generation Techniques for Functional Languages – Fairbairn, Wray - 1986
9 A range of operating systems written in a purely functional style – Jones - 1984
7 Design and Implementation of a Simple Typed Language Based on the Lambda-Calculus – Fairbairn - 1985
5 and its Type System – Ponder - 1982
5 Denotational semantics as a programming language – Schmidt - 1982
3 Graph Reduction with Supercombinators – Hughes - 1982
1 Abdali, An Abstraction Algorithm for Combinatory Logic – Kamal - 1976
1 Using circular programmes to eliminate multiple traversals of data – Bird - 1984
1 CL Hankin and S Abramsky The theory of strictness analysis for higher order functions – Burn
1 Yacc in Sasl---an Exercise – Jones - 1985
1 Verification and Derivation of Infinite-List Programs – Sijtsma - 1988
1 Introduction to the Functional Programming Language "Ponder – Tillotson - 1985
1 Projections for Strictness analysis Third – Wadler, Hughes