Comparing Two Functional Programming Systems

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]  Paul Hudak,et al.  Distributed execution of functional programs using serial combinators , 1985, IEEE Transactions on Computers.

[2]  Pierre-Louis Curien,et al.  The Categorical Abstract Machine , 1987, Sci. Comput. Program..

[3]  John B. Johnston,et al.  The contour model of block structured processes , 1971, SIGP.

[4]  Mark Scheevel NORMA: a graph reduction processor , 1986, LFP '86.

[5]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[6]  Michael J. Flynn,et al.  On Instruction Sets and Their Fornmts , 1985, IEEE Transactions on Computers.

[7]  Luca Cardelli,et al.  Compiling a functional language , 1984, LFP '84.

[8]  Larry Masinter,et al.  Performance of Lisp systems , 1982, LFP '82.

[9]  György E. Révész An Extension of Lambda-Calculus for Functional Programming , 1984, J. Log. Program..

[10]  Jon Fairbairn,et al.  Code generation techniques for functional languages , 1986, LFP '86.

[11]  Steven R. Vegdahl,et al.  A Survey of Proposed Architectures for the Execution of Functional Languages , 1984, IEEE Transactions on Computers.

[12]  Brent Hailpern,et al.  An Execution Architecture for FP , 1986, IBM J. Res. Dev..

[13]  György E. Révész Axioms for the Theory of Lambda-Conversion , 1985, SIAM J. Comput..

[14]  Michael J. Flynn Directly Executed Languages. , 1985 .

[15]  R. J. M. Hughes,et al.  Super-combinators a new implementation method for applicative languages , 1982, LFP '82.

[16]  Ascánder Suárez,et al.  Implementing functional languages in the Categorical Abstract Machine , 1986, LFP '86.

[17]  D. A. Turner Another Algorithm for Bracket Abstraction , 1979, J. Symb. Log..

[18]  Lee W. Hoevel,et al.  "Ideal" Directly Executed Languages: An Analytical Argument for Emulation , 1974, IEEE Transactions on Computers.

[19]  Dominique Clément,et al.  A simple applicative language: mini-ML , 1986, LFP '86.

[20]  Richard B. Kieburtz,et al.  The G-Machine: A Fast, Graph-Reduction Evaluator , 1985, FPCA.

[21]  Simon L. Peyton Jones An investigation of the relative efficiencies of combinators and lambda expressions , 1982, LFP '82.

[22]  Michael J. Flynn,et al.  Execution Architecture: The DELtran Experiment , 1983, IEEE Transactions on Computers.

[23]  Stephen K. Skedzielewski,et al.  Data Flow Graph Optimization in IF1 , 1985, FPCA.

[24]  Vivek Sarkar,et al.  Partitioning parallel programs for macro-dataflow , 1986, LFP '86.

[25]  Michael J. Flynn,et al.  Measures of Ideal Execution Architectures , 1984, IBM J. Res. Dev..

[26]  Guy Durrieu,et al.  Mechanisms for efficient multiprocessor combinator reduction , 1986, LFP '86.

[27]  F. Warren Burton A Linear Space Translation of Functional Programs to Turner Combinators , 1982, Inf. Process. Lett..

[28]  György E. Révész Lambda-calculus, combinators, and functional programming , 1988, Cambridge tracts in theoretical computer science.

[29]  A. C. Norman,et al.  SKIM - The S, K, I reduction machine , 1980, LISP Conference.

[30]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.