Higher order generalization in program derivation

  • Alberto Pettorossi
  • Andrzej Skowron
Session CFLP 4 Program Proving And Transformation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 250)


We define and study a particular kind of generalization strategy for deriving efficient functional programs. It is called higher order generalization because it consists in generalizing variables or expressions into functions. That strategy allows us to derive efficient one-pass algorithms with low time×space complexity.

Through some examples we show the power of our generalization strategy and its use together with the tupling strategy. Applying those strategies one may avoid the introduction of circular programs [Bir84].


Recursive Call Generalization Strategy High Order Function Attribute Grammar Recursive Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

7. References

  1. [AbV84]
    Abdali, K.S. and Vytopil, J.: “Generalization Heuristics for Theorems Related to Recursively Defined Functions” Report Buro Voor Systeemontwikkeling. Postbus 8348, Utrecht, Netherlands (1984).Google Scholar
  2. [Aub76]
    Aubin, R.: “Mechanizing Structural Induction” Ph.D. Thesis, Dept. of Artificial Intelligence, University of Edinburgh (1976).Google Scholar
  3. [BaP77]
    Bauer, F.L., Partsch, H., Pepper, P. and Wössner, H.: “Notes on the Project CIP: Outline of a Transformation System” TUM-INFO-7729 Tech. Report Institut für Informatik, der Technischen Universität München, Germany (1977).Google Scholar
  4. [Bir84]
    Bird, R.S.: “Using Circular Programs to Eliminate Multiple Traversal of Data” Acta Informatica 21 (1984), 239–250.Google Scholar
  5. [BMS80]
    Burstall, R.M., MacQueen, D.B., and Sannella, D.T.: “HOPE: An Experimental Applicative Language” Proc. LISP Conference 1980 Stanford USA (1980), 136–143.Google Scholar
  6. [BoM75]
    Boyer, R.S. and Moore, J.S.: “Proving Theorems About LISP Functions” J.A.C.M. 22, 1 (1975), 129–144.Google Scholar
  7. [BuD77]
    Burstall, R.M. and Darligton, J.: “A Transformation System for Developing Recursive Programs” J.A.C.M. Vol.24, 1 (1977) 44–67.Google Scholar
  8. [Cha76]
    Chatelin, P.: “Program Manipulation: to Duplicate is not to Complicate” Report Université de Grenoble, CNRS Laboratoire d'Informatique (1976).Google Scholar
  9. [Dar81]
    Darligton, J.: “An Experimental Program Transformation and Synthesis System” Artificial Intelligence 16, (1981), 1–46.Google Scholar
  10. [Fea79]
    Feather, M.S.: “A System for Developing Programs by Transformations” Ph.D. Thesis, Dept. of Artificial Intelligence, University of Edinburgh (1979).Google Scholar
  11. [Fea86]
    Feather, M.S.: “A Survey and Classification of Some Program Transformation Techniques” Proc. TC2 IFIP Working Conference on Program Specification and Transformation. Bad Tölz, Germany (ed. L. Meertens) (1986).Google Scholar
  12. [HuH82]
    Huet, G. and Hullot, J.M.: “Proofs by Induction in Equational Theories with Constructors” JCSS 25, 2 (1982), 239–266.Google Scholar
  13. [MaW79]
    Manna, Z. and Waldinger, R.: “Synthesis: Dreams → Programs” IEEE Transactions of Software Engineering SE-5, 4 (1979), 294–328.Google Scholar
  14. [Pet84a]
    Pettorossi, A.: “Methodologies for Transformation and Memoing in Applicative Languages” Ph. D. Thesis, Computer Science Department, Edinburgh University, Edinburgh (Scotland) (1984).Google Scholar
  15. [Pet84b]
    Pettorossi, A.: “A Powerful Strategy for Deriving Efficient Programs by Transformation” ACM Symposium on Lisp and Functional Programming, Austin, Texas (1984), 273–281.Google Scholar
  16. [Pet84c]
    Pettorossi, A.: “Constructing Recursive Programs which are Space Efficient” in: Computer Program Synthesis Methodologies (Biermann, Guiho, and Kodratoff, eds.) Macmillan Publ. Co., New York (1984), 289–303.Google Scholar
  17. [Swi85]
    Swierstra, D.: “Communication 513 SAU-15”. IFIP WG.2.1, Suasalito, California, USA (1985).Google Scholar
  18. [Wad85]
    Wadler, P.L.: “Listlessness is Better than Laziness” Ph. D. Thesis, Computer Science Department, CMU-CS-85-171, Carnegie Mellon University, Pittsburgh, USA (1985)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Alberto Pettorossi
    • 1
  • Andrzej Skowron
    • 2
  1. 1.IASI — CNRRomaItaly
  2. 2.Institute of MathematicsWarsaw UniversityWarsawPoland

Personalised recommendations