Skip to main content

Functional programming and the language tale

  • Chapter
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 224))

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

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.

    Google Scholar 

  • J. Backus [1978] Can programming be liberated from the von Neumann style? Comm. ACM 21(4), 613–641.

    Google Scholar 

  • H.P. Barendregt [1984] The lambda calculus, its syntax and semantics. North Holland, Amsterdam.

    Google Scholar 

  • Burstall, R.M., D.B. MacQueen and D.T. Sannella [1980] HOPE: an experimental applicative language, in: Proceedings first LISP conference, Stanford, 136–143.

    Google Scholar 

  • N.G. de Bruijn [1972] Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, Indag. Math. 34, 381–392.

    Google Scholar 

  • 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.

    Google Scholar 

  • T. Johnsson [1984] Efficient compilation of lazy evaluation, proc. of 1984 ACM SIGPLAN conf. on compiler constr., Montreal.

    Google Scholar 

  • G. Kahn, D.B. MacQueen and G. Plotkin (eds.) [1984] Semantics of data types, LNCS 173, Springer, Heidelberg.

    Google Scholar 

  • J.W. Klop [1980] Combinatory reduction systems, Mathematical Center Tracts, Kruislaan 413, 1098 SJ Amsterdam.

    Google Scholar 

  • P. Landin [1964] The mechanical evaluation of expressions, Computer Journal 6, 308–320.

    Google Scholar 

  • [1965] A correspondence between Algol 60 and Church's lambda notation, Comm.ACM, 8(2), 89–101, 158–165.

    Google Scholar 

  • [1966] A lambda calculus approach, in: Advances in programming and nonnumerical computation (L. Fox ed.), Pergamon Press, Oxford, 97–141.

    Google Scholar 

  • [1966a] The next 700 programming languages, Comm. ACM, 9, 157–166.

    Google Scholar 

  • 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.

    Google Scholar 

  • J.C. Reynolds [1974] Towards a theory of type structure, proc. Colloque sur la programmation, LNCS 19, Springer, Heidelberg, 408–425.

    Google Scholar 

  • D. Scott [1976] Data types as lattices, Siam J. of comput. 5, 522–587.

    Google Scholar 

  • D. Turner [1979] A new implementation technique for applicative languages, Software prctice and experience 9, 31–49.

    Google Scholar 

  • [1979a] SASL language manual, preprint obtainable at Computer Laboratory, University of Kent, Canterburry, England.

    Google Scholar 

  • [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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

J. W. de Bakker W. -P. de Roever G. Rozenberg

Rights and permissions

Reprints 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

Publish with us

Policies and ethics