This Article 
 Bibliographic References 
 Add to: 
Experiments in Optimizing FP
April 1988 (vol. 14 no. 4)
pp. 444-454

FPOPT, a globally optimizing compiler for FP, was built to study the efficiency of compiling a functional programming language by translating it into an intermediate language and then optimizing that intermediate language. This paper describes the FPOPT system, the design of the intermediate language and the optimizations performed. We have compared the relative effectiveness of these optimizations, singly and in combinations, using an instrumented version of FPOPT; we report our findings here.

[1] A. V. Aho, R. Sethi, and J. D. Ullman,Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
[2] K. Arvind and K. Pengali, "Sharing computations in functional language implementations," inProc. Int. Workshop High Level Computer Architectures, Los Angeles, CA, 1985, pages 1.1-1.12.
[3] J. Backus, "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs,"Commun. ACM, vol. 21, no. 8, pp. 613-641, Aug. 1978.
[4] J. W. Backus, "From function level sematics to program transformation and optimization." inMathematical FoundationsofSoftware Development, (Lecture Notes in Computer Science No. 185, Proc. Int. Joint Conf. Theory and Practice of Software Development (TAPSOFT), Berlin). New York: Springer-Verlag, 1985, pp. 60-91.
[5] F. Chow and J. Hennessy, "Register allocation by priority-based coloring,"SIGPLAN Not., vol. 19, no. 6, pp. 222-232, 1984.
[6] J. Darlington, "Program transformations," inFunctional Programming and its Applications. London, Cambridge University Press, 1982.
[7] ELISP: A Large Address Space Implementation of LISP, Rutgers Univ., 1986.
[8] M. Hecht,Flow Analysis of Computer Programs. New York: Elsevier North-Holland, 1977.
[9] P. Hudak and A. Bloss, "The aggregate update problem in functional programming systems," inConf. Rec. Twelveth Annu. ACM Symp. Principles of Programming Languages, Jan. 1985, pp. 300-314.
[10] T. Huynh, L. W. Hoevel, and B. T. Hailpem, "An execution architecture for FP,"IBM J. Res. Develop., vol. 30, no. 6, pp. 609-616, Nov. 1986.
[11] T. Huynh and B. T. Hailpem, "An improved DEL-style execution for FP," inProc. 20th HICSS Conf, Architecture Track, vol. I, Jan. 1987, pp. 369-376.
[12] N. Islam, T. J. Myers, and P. Broome, "A simple optimizer for FP-like languages," inProc. 1981 ACM Conf. Functional Programming Languages and Computer Architecture, Portsmouth, NH, Oct. 1981, pp. 33-40.
[13] N. D. Jones and S. S. Muchnick, "Binding time optimization in programming languages: Some thoughts toward the design of an ideal language," inConf. Rec. Third Annu. ACM Symp. Principles of Programming Languages, Jan. 1976, pp. 77-94.
[14] R. B. Kieburtz and J. Shultis, "Transformations of FP program schemes," inProc. 1981 ACM Conf. Functional Programming Languages and Computer Architecture, Portsmouth, NH, Oct. 1981, pp. 41-48.
[15] J. T. Schwartz, "Verifying the safe use of destructive operations in applicative programs," inProc. Third Int. Symp. Programming, 1978.
[16] A. Tenenbaum, "Compile time type determination in SETL," inProc. ACM 1974 Annu. Conf., San Diego, CA, Nov. 1974, pp. 95- 100.

Index Terms:
Coupling, FP, functional programming, optimization.
B.G. Ryder, J.S. Pendergrast, "Experiments in Optimizing FP," IEEE Transactions on Software Engineering, vol. 14, no. 4, pp. 444-454, April 1988, doi:10.1109/32.4668
Usage of this product signifies your acceptance of the Terms of Use.