# Functional programming systems revisited

## Abstract

Functional Programming (FP) systems are modified and extended to form Nondeterministic Functional Programming (NFP) systems in which nondeterministic programs can be specified and both deterministic and nondeterministic programs can be verified essentially within the system. It is shown that the algebra of NFP programs has simpler laws in comparison with the algebra of FP programs. "Regular" forms are introduced to put forward a disciplined way of reasoning about programs. Finally, an alternative definition of "linear" forms is proposed for reasoning about recursively defined programs. This definition, when used to test the linearity of forms, results in simpler verification conditions than those generated by the original definition of linear forms.

## Preview

Unable to display preview. Download preview PDF.

## References

- 1.Backus, J.: Can Programming be liberated from the von Neumann style? A Functional style and its Algebra of Programs. CACM 21(8) 613–641 (1978).Google Scholar
- 2.Backus, J.: The Algebra of Functional Programs: Functional level reasoning, Linear equations, and Extended Definitions. In: Lecture Notes in Computer Science, Vol. 107, pp. 1–43, Berlin-Heidelberg-New York: Springer-Verlag 1981.Google Scholar
- 3.Dijkstra, E.W.: A Discipline of Programming. Englewood Cliffs, N.J.: Prentice Hall, 1976.Google Scholar
- 4.Gries, D.: The Science of Programming, New York: Springer-Verlag, 1981.Google Scholar
- 5.Kieburtz, R., Shultis, J.: Transformation of FP Program Schemes. Proc. Conf. on Functional Programming Languages and Computer Architecture, 1981, Portsmouth, pp.41–48.Google Scholar
- 6.Williams, J.H.: On the Development of the Algebra of Functional Programs. ACM TOPLAS 4(4) 733–757 (1982).Google Scholar