Abstract
Given a syntax tree representing an expression, and some information regarding that expression, a backwards analysis will involve propagating the information (with appropriate transformation) towards the leaves of the tree, to yield information about the subexpressions. Here, the information at the root will describe the required definedness of the value of the expression, with the results of the analysis describing the definedness of the values lower in the tree sufficient or necessary to meet the condition at the root. In Projections for Strictness Analysis [1], such an analysis is described in which the information at each node is encoded by a special kind of function called a projection, with the results of the analysis revealing strictness information about the expression. This paper describes a more general and powerful technique, and provides proofs that both techniques meet a corresponding generalisation of the safety condition described in [1].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Wadler, P., and Hughes, R.J.M., 1987. Projections for Strictness Analysis. Report 35, Programming Methodology Group, Department of Computer Sciences, Chalmers University of Technology and University of Göteborg, Göteborg, Sweden.
Stoy, Joseph E: Denotation al Semantics: The Scott-Strachey Approach to Programming Language Theory. The MIT Press, Cambridge, Massachusetts, 1977.
Davis, K. “Trading accuracy for efficiency in forwards strictness analysis.” Unpublished manuscript, 1989.
Hughes, R.J.M. “Strictness detection in non-flat domains.” In Proceedings of the Workshop on Programs a Data Objects (Copenhagen). H. Ganzinger and N. Jones, eds. LNCS 217. Springer-Verlag, Berlin, 1985
Hughes, R.J.M. Backwards Analysis of Functional Programs. Departmental Research Report CSC/87/R3, Department of Computing Science, University of Glasgow, 1987.
Hughes, R.J.M. “Analysing strictness by abstract interpretation of continuations.” Chapter 4 of Abramsky, S. and Hankin, C. (eds.). Abstract Interpretation of Declarative Languages. Ellis-Horwood, 1987.
Hughes, R.J.M. “Compile-time analysis of functional programs.” In Proc. Year of Programming Summer School on Declarative Programming, (Austin, Texas), 1987, David Turner (ed.), Addison-Wesley 1989.
Hughes, R.J.M. “Projections for polymorphic strictness analysis.” 1989.
Hughes, R.J.M. and Ferguson, A. “An iterative powerdomain construction.” In Draft Proceedings of the 1989 Glasgow Workshop on Functional Programming (Fraserburgh, Scotland). 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1990 British Computer Society
About this paper
Cite this paper
Davis, K., Wadler, P. (1990). Backwards Strictness Analysis: Proved and Improved. In: Davis, K., Hughes, J. (eds) Functional Programming. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3166-3_2
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3166-3_2
Publisher Name: Springer, London
Print ISBN: 978-3-540-19609-9
Online ISBN: 978-1-4471-3166-3
eBook Packages: Springer Book Archive