Abstract
This paper discusses call forwarding, a simple interprocedural optimization technique for dynamically typed languages. The basic idea behind the optimization is very simple: generate multiple entry points for procedures such that a call to a procedure can be directed to the appropriate entry point, bypassing unnecessary code wherever possible. As shown by our experimental results, this simple optimization can be surprisingly effective, and lead to significant Derformance improvements.
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
A. V. Aho, R. Sethi and J. D. Ullman, Compilers — Principles, Techniques and Tools, Addison-Wesley, 1986.
M. Carlsson and J. Widen. SICStus Prolog User’s Manual. Swedish Institute of Computer Science, Oct. 1988.
C. Chambers and D. Ungar. Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically Typed Object-Oriented Programs. Proc. SIGPLAN’ 90 Conference on Programming Language Design and Implementation, White Plains, NY, June 1990, pp. 150–164. SIGPLAN Notices vol. 25 no. 6.
C. Chambers, D. Ungar and E. Lee. An Efficient Implementation of SELF, A Dynamically Typed Object-Oriented Language Based on Prototypes. Proc. OOPSLA’ 89, New Orleans, LA, 1989, pp. 49–70.
K. De Bosschere, S. K. Debray, D. Gudeman, and S. Kannan. Call Forwarding: A Simple Interprocedural Optimization Technique for Dynamically Typed Languages. Proc. 21st ACM Symposium on Principles of Programming Languages, Portland, Oregon, Jan 1994 (to appear).
I. Foster and S. Taylor. Strand: A Practical Parallel Programming Tool. Proc. 1989 North American Conference on Logic Programming, Cleveland, Ohio, Oct. 1989, pp. 497–512. MIT Press.
A. Goldberg and D. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, 1983.
D. Gudeman, K. De Bosschere, and S. K. Debray. j c: An Efficient and Portable Implementation of Janus. Proc. Joint International Conference and Symposium on Logic Programming, Washington DC, Nov. 1992, pp. 399–413. MIT Press.
V. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming, in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, pp. 431–446. MIT Press.
J. T. Schwartz, R. B. K. Dewar, E. Dubinsky, and E. Schonberg. Programming with Sets: An Introduction to SETL. Springer-Verlag, 1986.
G. L. Steele Jr. Common Lisp: The Language. Digital Press, 1984.
K. Ueda. Guarded Horn Clauses, in Concurrent Prolog: Collected Papers, vol. 1, ed. E. Shapiro, pp. 140–156, 1987. MIT Press.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 Springer Science+Business Media New York
About this chapter
Cite this chapter
Debray, S.K., De Bosschere, K., Gudeman, D. (1994). Call Forwarding: A Simple Low-Level Code Optimization Technique. In: Tick, E., Succi, G. (eds) Implementations of Logic Programming Systems. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-2690-2_6
Download citation
DOI: https://doi.org/10.1007/978-1-4615-2690-2_6
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4613-6157-2
Online ISBN: 978-1-4615-2690-2
eBook Packages: Springer Book Archive