Abstract
For a variant of Backus’ functional programming language FP using non-strict operations a structured algebraic specification is given. First the basic data structure of finite nested sequences, i.e. trees with arbitrary branching, is generalized to infinite trees by allowing non-strict constructor functions. Then for the language constructs an extensional semantics is defined, and a matching operational semantics is outlined. At each level of the hierarchical specification the class of semantic models is analysed. This axiomatic definition clarifies the foundations of Backus’ algebra of functional programs. Moreover, the essential concepts of the language are clearly separated from notational extensions.
Throughout the paper the particular structure of FP is explained. Backus’ original language is related to a call-by-name variant having a simpler algebra of programs. Special stress is laid on the notion of infinite objects and on the evaluation of least fixpoints of recursive definitions.
This work was carried out within the Sonderforschungsbereich 49, Programmiertechnik, Munich.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
J. Backus: Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Comm. ACM 21: 8, 613–641 (1978)
J. Backus: The algebra of functional programs: Function level reasoning, linear equations, and extended definitions. In: J. Diaz, I. Ramos (eds.): Formalization of Programming Concepts. Lecture Notes in Computer Science 107. Berlin-Heidelberg-New York: Springer 1981, 2111
J. Backus: Is computer science based on the wrong fundamental concept of ‘program’? An extended concept. In: J.W. de Bakker, J.C. van Vliet (eds.): Algorithmic Languages. Proceedings of an International Symposium on Algorithmic Languages. Amsterdam-New York-Oxford: North-Holland 1981, 133–165
J. Backus: Function Level Programs as Mathematical Objects. ACM Conference on Functional Programming Languages and Computer Architecture, Portsmouth, N.H., 1–10 (1981)
F.L. Bauer, H. Wssner: Algorithmic Language and Program Development. BerlinHeidelberg-New York: Springer (1982)
F.L. Bauer, M. Broy, W. Dosch, F. Geiselbrechtinger, W. Hesse, B. Krieg-BrOckner, A. Laut, T. Matzner, B. Moller, H. Partsch, P. Pepper, K. Samelson, M. Wirsing, H. WSssner: Report on a wide spectrum language for program specification and development (tentative version). Technische Universität MOnchen, Institut fOr Informatik, TUM-I8104, May 1981
M. Broy: Structured algebraic specification of Backus’ functional programming language. Unpublished manuscript. Technische Universität MOnchen, Institut für Informatik, May 1983
M. Broy, M. Wirsing: Algebraic definition of a functional programming language and its semantic models. R.A.I.R.0. Informatique théorique/Theoretical Informatics 17: 2, 137–161 (1983)
D.P. Friedman, D.S. Wise: CONS should not evaluate its arguments. In: S. Michaelson, R. Milner (eds.): Automata, languages and programming. Edinburgh: Edinburgh University Press 1976, 257–285
J.A. Goguen, J.W. Thatcher, E.G. Wagner, J.B. Wright: Initial algebra semantics and continuous algebras. Journal ACM 24: 1, 68–95 (1977)
J.V. Guttag: The specification and application to programming of abstract data types. Ph.D. Thesis, University of Toronto, Department of Computer Science, Report CSRG-59 (1975)
R. Henderson, J. H. Morris: A lazy evaluator. Proc. 3rd ACM Symposium on Principles of Programming Languages, 1976, 95–103
R.B. Kieburtz: Transformations of FP Program Schemes. Proc. ACM Conference on Functional Programming Languages and Computer Architecture, Portsmouth, N.H., 1981, 41–48
G.A. Magó: A network of microprocessors to execute reduction languages. International Journal on Computer and Information Systems 8:5, 349–385, 8: 6, 435–471 (1979)
J. McCarthy: Recursive functions of symbolic expressions and their computation by machine, part I. Comm. ACM 3: 4, 184–195 (1960)
B. Moller: Unendliche Objekte and Geflechte. Fakultât fUr Mathematik and Informatik der Technischen Universität MOnchen, Dissertation. Technische Universität MOnchen, Institut fUr Informatik, TUM-I8213, September 1982
B. Móller: An algebraic semantics for busy (data-driven) and lazy (demand-driven) evaluation and its application to a functional language. In: J. Diaz (ed.): Automata, Languages and Programming. Lecture Notes in Computer Science 154. Berlin-Heidelberg-New York: Springer 1983, 513–526
P. Pepper, M. Broy, F.L. Bauer, H. Partsch, W. Dosch, M. Wirsing: Abstrakte Datentypen: Die algebraische Spezifikation von Rechenstrukturen. In formatik-Spektrum 5, 107–119 (1982)
B. Robinet: Un niodéle logico-combinatoire des systemes de Backus. Université Paris 7, Laboratoire Informatique Theorique et Programmation, Rapport No 80–21, April 1980
P.C. Treleaven, D.R. Brownbridge, R.P. Hopkins: Data-driven and demand-driven computer architecture. Computing Surveys 14: 1, 93–143 (1982)
J.Vuillemin: Correct and optimal implementations of recursion in a simple programming language. Journal of Computer and Systems Science 9, 31–49 (1974)
J.H. Williams: On the development of the algebra of functional programs. ACM Transactions on Programming Languages 4: 4, 733–757 (1982)
M. Wirsing, P. Pepper, H. Partsch, W. Dosch, M. Broy: On hierarchies of abstract data types. Acta Informatica (to appear 1983 )
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1983 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Dosch, W., Möller, B. (1983). An Algebraic Semantics for Backus’ Functional Programming Language with Infinite Objects. In: Kupka, I. (eds) GI - 13. Jahrestagung. Informatik-Fachberichte, vol 73. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-69298-7_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-69298-7_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-12734-5
Online ISBN: 978-3-642-69298-7
eBook Packages: Springer Book Archive