Abstract
Program specialization can divide a computation into several computation stages. We present the key ingredient of our approach to multi-level specialization: an accurate and fast multi-level binding-time analysis. Three efficient program analyses for higher-order, functional languages are presented which are based on constraint systems and run almost-linear in the size of the analyzed programs. The three constraint normalizations have been proven correct (soundness, completeness, termination, existence of best solution). The analyses have all been implemented for a substantial, higher-order subset of Scheme. Experiments with widely-available example programs confirm the excellent run-time behavior of the normalization algorithms.
Preview
Unable to display preview. Download preview PDF.
References
L.O. Andersen. Binding-time analysis and the taming of C pointers. In Partial Evaluation and Semantics-Based Program Manipulation, ACM Press, 1993.
L. Birkedal, M. Welinder. Binding-time analysis for Standard ML. Lisp and Symbolic Computation, 8(3): 191–208, 1995.
A. Bondorf. Automatic autoprojection of higher order recursive equations. Science of Computer Programming, 17(1-3):3–34, 1991.
A. Bondorf, J. Jørgensen. Efficient analyses for realistic off-line partial evaluation. J of Functional Programming, 3(3):315–346, 1993.
C. Consel. Binding time analysis for higher order untyped functional languages. In Conference on Lisp and Functional Languages. 264–272, ACM Press, 1990.
A. P. Ershov. On the essence of compilation. In E. J. Neuhold (ed.), Formal Description of Programming Concepts, 391–420. North-Holland, 1978.
R. Glück, J. Jørgensen. Generating optimizing specializers. In IEEE International Conference on Computer Languages, 183–194. 1994.
R. Glück, J. Jørgensen. Efficient multi-level generating extensions for program specialization. In M. Hermenegildo, S. D. Swierstra (eds.) Programming Languages, Implementations, Logics and Programs, LNCS 982, 259–278, Springer-Verlag, 1995.
C. K. Gomard. Partial type inference for untyped functional programs. In ACM Conference on Lisp and Functional Programming, 282–287, ACM Press, 1990.
C. K. Gomard, N. D. Jones. A partial evaluator for the untyped lambda calculus. J of Functional Programming, 1(1):21–69, 1991.
F. Henglein. Efficient type inference for higher-order binding-time analysis. In J. Hughes (ed.), Functional Programming and Computer Architecture, LNCS 523, 448–472, Springer-Verlag, 1991.
IEEE. Standard for the Scheme programming language, IEEE Std 1178-1990.
N. D. Jones, C. K. Gomard, P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.
J. Jørgensen. Generating a compiler for a lazy language by partial evaluation. In Symposium on Principles of Programming Languages. 258–268, 1992.
F. Nielson, H. R. Nielson. Two-Level Functional Languages, volume 34 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1992.
F. Nielson, H. R. Nielson. Multi-level lambda-calculus: an algebraic description. In O. Danvy, R. Glück, P. Thiemann (eds.), Partial Evaluation. LNCS 1110, Springer-Verlag, 1996.
J. Palsberg, P. O'Keefe. A type system equivalent to flow analysis. TOPLAS, 17(4):576–599, 1995.
J. Rehof. Polymorphic dynamic typing. Master's thesis, Univ. of Copenhagen, Denmark, 1995.
R. Tarjan. Data Structures and Network Flow Algorithms, vol. CMBS 44 of Regional Conference Series in Applied Mathematics. SIAM, 1983.
P. Thiemann. Cogen in six lines. In International Conference on Functional Programming. 180–189, ACM Press, 1996.
M. Wand. Specifying the correctness of binding-time analysis. J of Functional Programming, 3(3):365–387, 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Glück, R., Jørgensen, J. (1996). Fast binding-time analysis for multi-level specialization. In: Bjørner, D., Broy, M., Pottosin, I.V. (eds) Perspectives of System Informatics. PSI 1996. Lecture Notes in Computer Science, vol 1181. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62064-8_22
Download citation
DOI: https://doi.org/10.1007/3-540-62064-8_22
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62064-8
Online ISBN: 978-3-540-49637-3
eBook Packages: Springer Book Archive