Listlessness is better than laziness: Lazy evaluation and garbage collection at compile-time

One reason for interest in functional programming is that it is well-suited for program development by transformation: begin by writing a clear (but inefficient) program, and transform this to an efficient (but less clear) program. Promising research has occurexl in this area [Burstall and Darlington 77; Clark and Darlington 80; Feather 82; Manna and Waldinger 79; Scherlis $1] and it is ripe for further exploration.

[1]  Donald E. Knuth,et al.  Structured Programming with go to Statements , 1974, CSUR.

[2]  William L. Scherlis,et al.  Program improvement by internal specialization , 1981, POPL '81.

[3]  Richard C. Waters,et al.  A Method for Analyzing Loop Programs , 1979, IEEE Transactions on Software Engineering.

[4]  Ken Thompson,et al.  The UNIX time-sharing system , 1974, CACM.

[5]  R. J. M. Hughes,et al.  Design and Implementation of Programming Languages , 1977, Lecture Notes in Computer Science.

[6]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[7]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

[8]  Valentin F. Turchin,et al.  Experiments with a supercompiler , 1982, LFP '82.

[9]  Peter Henderson,et al.  A lazy evaluator , 1976, POPL.

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

[11]  Philip Lee Wadler Listlessness is better than laziness: an algorithm that transforms applicative programs to eliminate intermediate lists , 1984 .

[12]  Keith L. Clark,et al.  Algorithm Classification Through Synthesis , 1980, Comput. J..

[13]  Robert W. Floyd,et al.  The paradigms of programming , 1979, CACM.

[14]  Daniel P. Friedman,et al.  CONS Should Not Evaluate its Arguments , 1976, ICALP.

[15]  Robert S. Boyer,et al.  Proving Theorems about LISP Functions , 1973, JACM.

[16]  Martin S. Feather,et al.  A System for Assisting Program Transformation , 1982, TOPL.

[17]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[18]  Jonathan C. Shultis,et al.  Transformations of FP program schemes , 1981, FPCA '81.

[19]  Carl Hewitt,et al.  Comparative Schematology , 1970 .

[20]  Philip Wadler,et al.  Applicative style programming, program transformation, and list operators , 1981, FPCA '81.

[21]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

[22]  Zohar Manna,et al.  Synthesis: Dreams - Programs , 1979, IEEE Trans. Software Eng..

[23]  Guy L. Steele Debunking the “expensive procedure call” myth or, procedure call implementations considered harmful or, LAMBDA: The Ultimate GOTO , 1977, ACM '77.