Advertisement

A generalization of Backus' FP

  • Y. V. Srinivas
  • Rajeev Sangal
Session 2 Logic Programming And Functional Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 241)

Abstract

We view Backus' FP as a framework consisting of a set of basic tools for programming in the functional style, which can accommodate a large number of changeable parts. We argue that functional forms logically belong to the latter because they are specific to the data type. To support a programming methodology based upon this view, we extend FP by introducing "fdef" — a facility for defining new functional forms, based upon the extended definitions of Backus. In an "fdef", the parameters of the form are specified on the left and the function that the functional form is to return as its result is written on the right. We use lazy evaluation instead of APPLY to implement this extension because we feel that APPLY is a hindrance to the algebraic style of proving FP programs. The significant feature of "fdef" is that algebraic laws can be generated from the definitions of functional forms.

Keywords

Functional Form Combinatory Logic Extended Language Proper Definition High Order Function 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1. [Arv84]
    Arvind, Brock, J. D. and Pingali, K. "FP1.5: Backus' FP with higher order functions", M.I.T. Lab. for Computer Science, (Unpublished 1984).Google Scholar
  2. 2. [Bac78]
    Backus, J., "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs," Comm. of the ACM, 21, 8, August 1978.Google Scholar
  3. 3. [Bac81]
    Backus, J., "The algebra of functional programs: function level reasoning, linear equations, and extended definitions" in Formalization of Programming Concepts, Lecture Notes in CS, Vol. 107, Springer-Verlag, April 1981.Google Scholar
  4. 4. [Bur75]
    Burge, W. H., Recursive Programming Technniques, Addison-Wesley Publishing Co., Reading, Massachusetts, 1975.Google Scholar
  5. 5. [Cur58]
    Curry, H. B. and Feys, R., Combinatory Logic, Vol. 1, North-Holland Publishing Co., Amsterdam, 1958.Google Scholar
  6. 6. [Hen76]
    Henderson, P. and Morris, J. M., "A lazy evaluator," Proc. of the 3rd ACM Symp. on Principles of Prog. Lang., 1976.Google Scholar
  7. 7. [Hen80]
    Henderson, P., Functional Programming, Applications and Implementation, Prentice-Hall, Englewood Cliffs, NJ, 1980.Google Scholar
  8. 8. [Rob85]
    Roberts, Nirmal P., Implementation of Higher-Order Functions in FP, M.Tech. thesis (August 1985), Dept. of Computer Sc. & Engg., Indian Institute of Technology Kanpur.Google Scholar
  9. 9. [Smi82]
    Smith, B. C., Reflection and Semantics in a Procedural Language, Ph. D. dissertation, M.I.T. Lab. for CS, LCS/TR/272, 1982.Google Scholar
  10. 10. [Sri85]
    Srinivas, Y. V., M.Tech. thesis (April 1985), Dept. of Computer Sc. & Engg., Indian Institute of Technology Kanpur.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Y. V. Srinivas
    • 1
  • Rajeev Sangal
    • 1
  1. 1.Department of Computer Science and EngineeringIndian Institute of Technology KanpurIndia

Personalised recommendations