This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Comparing Two Functional Programming Systems
May 1989 (vol. 15 no. 5)
pp. 532-542

A technique is presented for comparing the performance of functional languages with different evaluation strategies running on different machines. A set of small benchmarks is used, and th execution times of these programs running in the functional language and in the implementation language of the functional system are compared. The ratio of these execution times measured how well the functional system used the resources of the underlying hardware and implementation language. Also two functional programming systems are described. One system is a graph reduction interpreter for lambda calculus. The other is a DEL-style intermediate instruction set architecture for FP. The benchmarks in FP and the performances of the two systems on these benchmarks are presented.

[1] Arvind, V. Kathail, and K. Pingali, "Sharing computation in functional language implementations," inProc. Int. Workshop High-Level Computer Architecture, Los Angeles, CA, May 1985, pp. 5.1-5.12.
[2] 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.
[3] F. W. Burton, "A linear space translation of functional programs to Turner combinators,"Inform. Processing Lett., vol. 14, no. 5, pp. 201-204, 1982.
[4] L. Cardelli, "Compiling a functional language," inProc. 1984 ACM Symp. LISP and Functional Programming, ACM, Austin, TX, Aug. 1984, pp. 208-217.
[5] T. J. W. Clarke, P. J. S. Gladstone, C. D. MacLean, and A. C. Norman, "SKIM--The S, K, I reduction machine," inLISP Conf. Rec., Stanford Univ., Stanford, CA, 1980, pp. 128-135.
[6] D. Clement, J. Despeyroux, T. Despeyroux, and G. Kahn, "A simple applicative language: Mini-ML," inProc. 1986 ACM Conf. LISP and Functional Programming, ACM, Cambridge, MA, Aug. 1986, pp. 13-27.
[7] G. Cousineau, P.-L. Curien, and M. Mauny, "The categorical abstract machine," inProc. Functional Programming Languages and Computer Architecture Conf.(Springer-Verlag Lecture Notes in Computer Science, vol. 201), Nancy, France, Sept. 1985, pp. 50-64.
[8] J. Fairbairn and S. Wray, "Code generation techniques for functional languages," inProc. 1986 ACM Conf. LISP and Functional Programming, ACM, Cambridge, MA, Aug. 1986, pp. 94-104.
[9] M. J. Flynn and L. W. Hoevel, "Execution architecture: The DEL-tran experiment,"IEEE Trans. Comput., vol. C-32, no. 2, pp. 156- 175, Feb. 1983.
[10] M. J. Flynn and L. W. Hoevel, "Measures of ideal execution architectures,"IBM J. Res. Develop., vol. 28, no. 4, pp. 356-369, July 1984.
[11] M. J. Flynn, J. D. Johnson, and S. P. Wakefield," On instruction sets and their formats,"IEEE Trans. Comput., vol. C-34, no. 3, pp. 242-254, Mar. 1985.
[12] R. P. Gabriel and L. M. Masinter, "Performance of Lisp systems," inProc. 1982 ACM Symp. LISP and Functional Programming, ACM, Pittsburgh, PA, Aug. 1982, pp. 123-142.
[13] B. Hailpern, T. Huynh, and G. Revesz, "Comparing two functional programming systems," IBM Res. Rep., RC 12598, Mar. 1987; revised Mar. 1988.
[14] L. W. Hoevel, "Directly executed language," Ph.D., dissertation, Johns Hopkins Univ., 1978.
[15] P. Hudak and B. Goldberg, "Distributed execution of functional programs using serial combinators,"IEEE Trans. Comput., vol. C-34, no. 10, pp. 881-891, Oct. 1985.
[16] J. Hughes, "Supercombinators: A new implementation method for applicative languages," inProc. 1982 ACM Conf. Lisp Funct. Prog., Aug. 1982, pp. 1-10.
[17] 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.
[18] T. Huynh and B. Hailpern, "An improved DEL-style execution architecture for FP," inProc. Twentieth Hawaii Int. Conf. System Sciences, vol. 1, Kona, HI, Jan. 1987, pp. 369-376.
[19] J. B. Johnson, "The contour model of block structured processes,"SIGPLAN Notices, vol. 6, pp. 55-82, Feb. 1971.
[20] R. B. Kieburtz, "The G machine: A fast, graph-reduction evaluator," inProc. Functional Programming Languages and Computer Architecture Conf., (Springer-Verlag Lecture Notes in Computer Science, vol. 201), Nancy, France, Sept. 1985, pp. 400-413.
[21] M. Lemaitre, M. Castan, M. Durand, G. Durrieu, and B. Lecussan, "Mechanisms for efficient multiprocessor combinator reduction," inProc. 1986 ACM Conf. LISP and Functional Programming, ACM, Cambridge, MA, Aug. 1986, pp. 113-121.
[22] G. A. Mago, "A cellular computer architecture for functional programming," inProc. IEEE COMPCON, 1980, pp. 179-187.
[23] M. Mauny and A. Suarez, "Implementing functional languages in the Categorical Abstract Machine," inProc. 1986 ACM Conf. LISP and Functional Programming, ACM, Cambridge, MA, Aug. 1986, pp. 266-278.
[24] K. Noshita and T. Hikita, "The BC-chain method for representing combinators in linear space,"New Generation Comput., vol. 3, no. 2, pp. 131-144, 1985.
[25] J. S. Pendergrast and B. G. Ryder, "FPOPT" A globally optimizing compiler for FP," Dep. Comput. Sci., Rutgers Univ., Tech. Rep. DCS-TR-175, Mar. 1986.
[26] S. L. Peyton Jones, "An investigation of the relative efficiencies of combinator and lambda expressions," inProc. 1982 ACM Symp. LISP and Functional Programming, ACM, Pittsburgh, PA, Aug. 1982, pp. 150-158.
[27] G. Revesz, "An extension of lambda-calculus for functional programming,"J. Logic Programming, vol. 1, no. 3, pp. 241-251, 1984.
[28] G. Revesz, "Axioms for the theory of lambda-conversion,"SIAM J. Comput., vol. 14, no. 2, pp. 373-382, 1985.
[29] G. Revesz,Lambda-Calculus, Combinators, and Functional Programming. London: Cambridge University Press, 1988.
[30] V. Sarkar and J. Hennessy, "Partitioning parallel programs for macro-dataflow," inProc. 1986 ACM Conf. LISP and Functional Programming, ACM, Cambridge, MA, Aug. 1986, pp. 202-211.
[31] M. Scheevel, "NORMA: A graph reduction processor," inProc. 1986 ACM Conf. LISP and Functional Programming, ACM, Cambridge, MA, Aug. 1986, pp. 212-219.
[32] S. Tighe, "A study of the parallelism inherent in combinator reduction," inProc. Twentieth Hawaii Int. Conf. System Sciences, vol. I, Kona, HI, Jan. 1987, pp. 337-342.
[33] D. A. Turner, "Another algorithm for bracket abstraction,"J. Symbolic Logic, vol. 44, no. 2, pp. 267-270, June 1979.
[34] D. A. Turner, "A new implementation technique for applicative languages,"Software--Practice and Experience, vol. 9, no. 1, pp. 31-40, 1979.
[35] S. R. Vegdahl, "A survey of proposed architectures for the execution of functional languages,"IEEE Trans. Comput., vol. C-33, no. 12, pp. 1050-1071, Dec. 1984.
[36] S.K. Skedzielewski and M.L. Welcome, "Dataflow Graph Optimization in IFI," inFunctional Programming Languages and Computer Architecture, J.-P. Jouannaud, ed., Springer-Verlag, New York, 1985, pp. 17-34.

Index Terms:
performance comparison; functional programming systems; functional languages; evaluation strategies; benchmarks; execution times; implementation language; graph reduction interpreter; lambda calculus; DEL-style intermediate instruction set architecture; FP; functional programming; high level languages; performance evaluation.
Citation:
B. Hailpern, T. Huynh, G. Revesz, "Comparing Two Functional Programming Systems," IEEE Transactions on Software Engineering, vol. 15, no. 5, pp. 532-542, May 1989, doi:10.1109/32.24702
Usage of this product signifies your acceptance of the Terms of Use.