Abstract
Chapter I is an introduction to functional programming, using informal (though precise) programs. Moreover, it is an introduction to chapter II, in which the functional language TALE is defined in a formal way. The definition of TALE consists of a core language based on the second order typed lambda calculus with recursive types and data types for tuples, unions and arrays. The semantics of the core language is given as a precisely defined reduction relation on expressions. The core language is extended in order to make programming more flexible. It is indicated how expressions in the extended language have to be translated to the core language. All purely functional languages are essentially based on the lambda calculus. Therefore TALE has a strong similarity to other such languages like SASL (Turner [1979a]), Miranda (Turner [1985]), LML (Augustsson [1984]) and HOPE (Burstall et al [1980]). Our motivation for introducing TALE was to give a complete description of a language with precise semantics and at the same time a flexible syntax for actual programming.
The authors are partially sponsored by the Dutch Ministery of Science and Education through the project "Parallel Reduction Machine". Chapter I is written by the first and II by the second author.
Preview
Unable to display preview. Download preview PDF.
References
L. Augustsson [1984] A compiler for lazy ML, proc. ACM conf. on LISP and functional programming, 218–227.
J. Backus [1978] Can programming be liberated from the von Neumann style? Comm. ACM 21(4), 613–641.
H.P. Barendregt [1984] The lambda calculus, its syntax and semantics. North Holland, Amsterdam.
Burstall, R.M., D.B. MacQueen and D.T. Sannella [1980] HOPE: an experimental applicative language, in: Proceedings first LISP conference, Stanford, 136–143.
N.G. de Bruijn [1972] Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, Indag. Math. 34, 381–392.
J.-Y. Girard [1972] Interprétation fonctionelle et élimination des coupures dans l'arithmétique d'ordre supérieur, Ph.D. thesis, Université de Paris VII.
T. Johnsson [1984] Efficient compilation of lazy evaluation, proc. of 1984 ACM SIGPLAN conf. on compiler constr., Montreal.
G. Kahn, D.B. MacQueen and G. Plotkin (eds.) [1984] Semantics of data types, LNCS 173, Springer, Heidelberg.
J.W. Klop [1980] Combinatory reduction systems, Mathematical Center Tracts, Kruislaan 413, 1098 SJ Amsterdam.
P. Landin [1964] The mechanical evaluation of expressions, Computer Journal 6, 308–320.
[1965] A correspondence between Algol 60 and Church's lambda notation, Comm.ACM, 8(2), 89–101, 158–165.
[1966] A lambda calculus approach, in: Advances in programming and nonnumerical computation (L. Fox ed.), Pergamon Press, Oxford, 97–141.
[1966a] The next 700 programming languages, Comm. ACM, 9, 157–166.
D. MacQueen, G. Plotkin and R. Sethi [1984] An ideal model for recursive polymorphic types, Eleventh Annual ACM Symposium on Principles of Programming Languages, January 1984, Salt Lake City, Utah.
J.C. Reynolds [1974] Towards a theory of type structure, proc. Colloque sur la programmation, LNCS 19, Springer, Heidelberg, 408–425.
D. Scott [1976] Data types as lattices, Siam J. of comput. 5, 522–587.
D. Turner [1979] A new implementation technique for applicative languages, Software prctice and experience 9, 31–49.
[1979a] SASL language manual, preprint obtainable at Computer Laboratory, University of Kent, Canterburry, England.
[1985] Miranda: a non-strict functional language with polymorphic types, in: Functional programming languages and computer architecture (Ed. J.-P. Jouannaod), Lecture Notes Computer Science 101, Springer, Heidelberg, 1–16.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Barendregt, H., van Leeuwen, M. (1986). Functional programming and the language tale. In: de Bakker, J.W., de Roever, W.P., Rozenberg, G. (eds) Current Trends in Concurrency. Lecture Notes in Computer Science, vol 224. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0027041
Download citation
DOI: https://doi.org/10.1007/BFb0027041
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-16488-3
Online ISBN: 978-3-540-39827-1
eBook Packages: Springer Book Archive