Towards increased productivity of algorithm implementation

This paper reports experimental results that support the feasibility of a new transformational approach developed by the authors for implementing complex algorithms correctly and efficiently. The class of algorithms amenable to our methods includes nonnumerical graph algorithms. Experiments were performed to measure how this approach affects productivity (in terms of the number of source lines in the implementation divided by manual programming time) and running times. Comparative benchmarks showed that productivity can be increased over a conventional ad hoc approach by factors ranging from 5.1 to 9.9 Preliminary results also showed that the running time of C code produced by this new approach can be as fast as 1.5 times that of tightly coded high quality Fortran.

[1]  Robert Paige,et al.  Binding performance at language design time , 1987, POPL '87.

[2]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[3]  Ernst-Erich Doberkat,et al.  SETL to ADA—tree transformations applied , 1987 .

[4]  David S. Wile Type Transformations , 1981, IEEE Transactions on Software Engineering.

[5]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[6]  Robert Paige,et al.  Language Polynomial in the Input Plus Output , 1991, AMAST.

[7]  Kenneth E. Iverson,et al.  A programming language , 1899, AIEE-IRE '62 (Spring).

[8]  Robert Paige,et al.  Finite Differencing of Computable Expressions , 1982, TOPL.

[9]  J. Cai,et al.  A Language for Semantic Analysis , 1993 .

[10]  Robert Paige,et al.  Program Derivation by Fixed Point Computation , 1989, Sci. Comput. Program..

[11]  S E Ross The High Cost of Reading. , 1960, Science.

[12]  François Bancilhon,et al.  Naive Evaluation of Recursively Defined Relations , 1986, On Knowledge Base Management Systems.

[13]  Micha Sharir,et al.  Experience with the SETL Optimizer , 1983, TOPL.

[14]  Micha Sharir,et al.  An Automatic Technique for Selection of Data Representations in SETL Programs , 1981, TOPL.

[15]  Edmond Schonberg,et al.  Programming with Sets: An Introduction to SETL , 1986 .

[16]  Charles L. Forgy,et al.  Rete: A Fast Algorithm for the Many Patterns/Many Objects Match Problem , 1982, Artif. Intell..

[17]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[18]  P. Cousot,et al.  Constructive versions of tarski's fixed point theorems , 1979 .

[19]  Robert E. Tarjan,et al.  More Efficient Bottom-Up Multi-Pattern Matching in Trees , 1992, Theor. Comput. Sci..

[20]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[21]  D. H. Mellor,et al.  Real time , 1981 .

[22]  Edmond Schonberg,et al.  Taliere: an interactive system for data structuring setl programs , 1988 .

[23]  Bernard Lang,et al.  Programming Environments Based on Structured Editors: The MENTOR Experience, , 1980 .

[24]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[25]  Edmond Schonberg,et al.  Programming by Refinement, as Exemplified by the SETL Representation Sublanguage , 1979, TOPL.

[26]  Lynwood David Shields Measuring setl performance , 1983 .

[27]  Jacob T. Schwartz,et al.  Automatic data structure choice in a language of very high level , 1975, CACM.

[28]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[29]  Fritz Henglein,et al.  Mechanical Translation of Set Theoretic Problem Specifications into Efficient RAM Code - A Case Study , 1985, European Conference on Computer Algebra.

[30]  Philip A. Bernstein,et al.  Computational problems related to the design of normal form relational schemas , 1979, TODS.

[31]  Fritz Henglein,et al.  Mechanical Translation of Set Theoretic Problem Specifications into Efficient RAM Code-A Case Study , 1987, J. Symb. Comput..