A generalization of Backus' FP
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.
KeywordsFunctional Form Combinatory Logic Extended Language Proper Definition High Order Function
Unable to display preview. Download preview PDF.
- 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. [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. [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. [Bur75]Burge, W. H., Recursive Programming Technniques, Addison-Wesley Publishing Co., Reading, Massachusetts, 1975.Google Scholar
- 5. [Cur58]Curry, H. B. and Feys, R., Combinatory Logic, Vol. 1, North-Holland Publishing Co., Amsterdam, 1958.Google Scholar
- 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. [Hen80]Henderson, P., Functional Programming, Applications and Implementation, Prentice-Hall, Englewood Cliffs, NJ, 1980.Google Scholar
- 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. [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. [Sri85]Srinivas, Y. V., M.Tech. thesis (April 1985), Dept. of Computer Sc. & Engg., Indian Institute of Technology Kanpur.Google Scholar