## Using Projection Analysis in Compiling Lazy Functional Programs (1990)

Venue: | In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming |

Citations: | 15 - 6 self |

### BibTeX

@INPROCEEDINGS{Burn90usingprojection,

author = {G.L. Burn},

title = {Using Projection Analysis in Compiling Lazy Functional Programs},

booktitle = {In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming},

year = {1990},

pages = {227--241},

publisher = {ACM}

}

### Years of Citing Articles

### OpenURL

### Abstract

Projection analysis is a technique for finding out information about lazy functional programs. We show how the information obtained from this analysis can be used to speed up sequential implementations, and introduce parallelism into parallel implementations. The underlying evaluation model is evaluation transformers, where the amount of evaluation that is allowed of an argument in a function application depends on the amount of evaluation allowed of the application. We prove that the transformed programs preserve the semantics of the original programs. Compilation rules, which encode the information from the analysis, are given for sequential and parallel machines. 1 Introduction A number of analyses have been developed which find out information about programs. The methods that have been developed fall broadly into two classes, forwards analyses such as those based on the ideas of abstract interpretation (e.g. [9, 18, 19, 7, 17, 12, 4, 20]), and backward analyses such as those based...

### Citations

667 | Systematic design of program analysis frameworks
- COUSOT, COUSOT
- 1979
(Show Context)
Citation Context ...oped which find out information about programs. The methods that have been developed fall broadly into two classes, forwards analyses such as those based on the ideas of abstract interpretation (e.g. =-=[9, 18, 19, 7, 17, 12, 4, 20]-=-), and backward analyses such as those based on projections (e.g. [22]), the work of Hall ([11]), and inverse image analysis ([10]). The analysis techniques have mostly been applied to finding out inf... |

109 |
Term graph rewriting
- Barendregt, Eekelen, et al.
- 1987
(Show Context)
Citation Context ... to be to devise some operational semantics so that we can reason about changing the value of an expression using an evaluator. Proofs about graph reduction should hopefully then follow through as in =-=[1]-=-, and we should be able to appeal to [14] to get the basis for the proof of the correctness of our compilation rules. 7 Implementing the Model We defined a parallel abstract machine which supports thi... |

100 | Projections for strictness analysis
- Wadler, Hughes
- 1987
(Show Context)
Citation Context ...ly into two classes, forwards analyses such as those based on the ideas of abstract interpretation (e.g. [9, 18, 19, 7, 17, 12, 4, 20]), and backward analyses such as those based on projections (e.g. =-=[22]-=-), the work of Hall ([11]), and inverse image analysis ([10]). The analysis techniques have mostly been applied to finding out information about the definedness of functions. This information has then... |

93 |
Abstract Interpretation a d Optimising Transformation f rAp- plicative programs
- Mycroft
- 1981
(Show Context)
Citation Context ...oped which find out information about programs. The methods that have been developed fall broadly into two classes, forwards analyses such as those based on the ideas of abstract interpretation (e.g. =-=[9, 18, 19, 7, 17, 12, 4, 20]-=-), and backward analyses such as those based on projections (e.g. [22]), the work of Hall ([11]), and inverse image analysis ([10]). The analysis techniques have mostly been applied to finding out inf... |

70 | Strictness analysis for higher-order functions - Burn, Hankin, et al. - 1986 |

47 |
The spineless tagless G-machine
- Jones, Salkild
- 1989
(Show Context)
Citation Context ... demonstrate compiling the projection transformer into code by giving compilation rules for a parallel G-machine based on the Spineless G-machine [8]. Whilst more efficient code can be generated (see =-=[21, 2]-=-, for example), it is easy to show how to introduce the projection transformer information into code for the Spineless G-machine. Three compilation functions will be considered: ffl R: Used to compile... |

40 |
Two-level semantics and abstract interpretation
- Nielson
- 1989
(Show Context)
Citation Context ...oped which find out information about programs. The methods that have been developed fall broadly into two classes, forwards analyses such as those based on the ideas of abstract interpretation (e.g. =-=[9, 18, 19, 7, 17, 12, 4, 20]-=-), and backward analyses such as those based on projections (e.g. [22]), the work of Hall ([11]), and inverse image analysis ([10]). The analysis techniques have mostly been applied to finding out inf... |

36 |
The spineless G-machine
- Burn, Jones, et al.
- 1988
(Show Context)
Citation Context ... expression without creating a closure for it. We will demonstrate compiling the projection transformer into code by giving compilation rules for a parallel G-machine based on the Spineless G-machine =-=[8]-=-. Whilst more efficient code can be generated (see [21, 2], for example), it is easy to show how to introduce the projection transformer information into code for the Spineless G-machine. Three compil... |

29 |
Evaluation transformers - a model for the parallel evaluation of functional languages
- Burn
- 1987
(Show Context)
Citation Context ...ctional programs, where the amount of evaluation allowed of an argument expression depends on the amount of evaluation allowed of the function application, was first presented in [4], and reported in =-=[3]-=-. It was called the evaluation transformer model because the amount of evaluation allowed of a function application is mapped to the amount of evaluation allowed of an argument expression. Abstract in... |

22 |
Abstract Interpretation and the Parallel Evaluation of Functional Languages
- Burn
- 1987
(Show Context)
Citation Context |

17 | Distributed implementation of programmed graph reduction
- Loogen, Kuchen, et al.
- 1989
(Show Context)
Citation Context ...anded to transputer machine code, has been completed [13]. Loogen has also defined a parallel abstract machine based on the same model, which has been implemented in occam on a network of transputers =-=[16]-=-. 8 Conclusion The evaluation transformer reduction model is a natural extension of lazy evaluation when we have information about how arguments of functions are going to be used. This information is ... |

16 |
A relationship between abstract interpretation and projection analysis (extended abstract
- Burn
- 1990
(Show Context)
Citation Context ... for two reasons. Firstly, the evaluation transformer model of [3] was based on information obtained from abstract interpretation, whilst the work of [22] used projections. We addressed this issue in =-=[6]-=-, proving a relationship between abstract interpretation and projection analysis. Secondly, the definitions and proofs of [4] were couched in terms of developing a parallel implementation, although th... |

16 |
Compiling Strictness into Streams
- Hall, Wise
- 1987
(Show Context)
Citation Context ...ards analyses such as those based on the ideas of abstract interpretation (e.g. [9, 18, 19, 7, 17, 12, 4, 20]), and backward analyses such as those based on projections (e.g. [22]), the work of Hall (=-=[11]-=-), and inverse image analysis ([10]). The analysis techniques have mostly been applied to finding out information about the definedness of functions. This information has then been used to make more e... |

14 |
Abstract Interpretation Using Domain Theory
- Nielson
- 1984
(Show Context)
Citation Context |

13 |
Combinator Graph Reduction: A Congruence and its Applications. D.Phil thesis
- LESTER
- 1989
(Show Context)
Citation Context ...ics so that we can reason about changing the value of an expression using an evaluator. Proofs about graph reduction should hopefully then follow through as in [1], and we should be able to appeal to =-=[14]-=- to get the basis for the proof of the correctness of our compilation rules. 7 Implementing the Model We defined a parallel abstract machine which supports this model in the special case that only the... |

10 |
A shared memory parallel G-Machine based on the evaluation transformer model of computation
- Burn
- 1988
(Show Context)
Citation Context ...n Figure 9. The compilation rules that are given in Figure 9 introduce some new instructions. We will only outline their meaning in this paper; similar instructions have been fully defined elsewhere, =-=[5, 15]-=- for example, albeit for a simpler set of evaluators. In order to support the run-time updating of versions, the implementation must have some way of accessing and updating the evaluator stored on an ... |

7 |
Higher order strictness analysis in untyped lambda calculus
- Hudak, Young
- 1986
(Show Context)
Citation Context |

6 |
Inverse image analysis
- Dybjer
- 1987
(Show Context)
Citation Context ...n the ideas of abstract interpretation (e.g. [9, 18, 19, 7, 17, 12, 4, 20]), and backward analyses such as those based on projections (e.g. [22]), the work of Hall ([11]), and inverse image analysis (=-=[10]-=-). The analysis techniques have mostly been applied to finding out information about the definedness of functions. This information has then been used to make more efficient implementations of functio... |

6 |
An Executable Specification of the HDG-Machine
- Lester, Burn
- 1989
(Show Context)
Citation Context ...n Figure 9. The compilation rules that are given in Figure 9 introduce some new instructions. We will only outline their meaning in this paper; similar instructions have been fully defined elsewhere, =-=[5, 15]-=- for example, albeit for a simpler set of evaluators. In order to support the run-time updating of versions, the implementation must have some way of accessing and updating the evaluator stored on an ... |

3 |
Code Optimisations for Lazy Evaluation
- Bloss, Hudak, et al.
(Show Context)
Citation Context ...he intended meaning is clear, and will continue to abuse the notation throughout the rest of the paper. in Figure 3. With these definitions, the application (f [0,?]) should return the singleton list =-=[2]. Th-=-e following projection information is relevant to our example: CONS 2 : (T ffi H) S ) (T ffi H) S BEFORE 1 : (T ffi H) S ) H S Suppose the application f [0,?] is being evaluated with evaluator �� ... |

3 |
A transputer-based HDG--machine
- Kingdon, Lester, et al.
- 1991
(Show Context)
Citation Context ...tract machine on a simple network of transputers, 8 Miranda is a trademark of Research Software Ltd. with the abstract machine code being macro-expanded to transputer machine code, has been completed =-=[13]-=-. Loogen has also defined a parallel abstract machine based on the same model, which has been implemented in occam on a network of transputers [16]. 8 Conclusion The evaluation transformer reduction m... |

2 |
Strictness computation using special lambda-expressions
- Maurer
- 1985
(Show Context)
Citation Context |