Skip to main content

A First-Order Functional Language

  • Chapter
Programming Language Concepts

Part of the book series: Undergraduate Topics in Computer Science ((UTICS,volume 50))

  • 3809 Accesses

Abstract

This chapter presents a functional language micro-ML, a small subset of ML or F#. A functional programming language is one in which the evaluation of expressions and function calls is the primary means of computation. A pure functional language is one in which expressions cannot have side effects, such as changing the value of variables, or printing to the console. The micro-ML language is first-order, which means that functions cannot be used as values. ChapterĀ 5 presents a higher-order functional language, in which functions can be used as values as in ML and F#.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Augustsson, L.: A compiler for Lazy ML. In: 1984 ACM Symposium on Lisp and Functional Programming, Austin, TX, pp. 218ā€“227. ACM, New York (1984)

    ChapterĀ  Google ScholarĀ 

  2. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Fourth ACM Symposium on Principles on Programming Languages, Los Angeles, CA, January 1977, pp. 238ā€“252. ACM, New York (1977)

    ChapterĀ  Google ScholarĀ 

  3. Ecma International: ECMAScript language specification. Standard ECMA-262, 3rd edn. (1999). At http://www.ecma-international.org/publications/standards/Ecma-262.htm

  4. Gordon, M.J., Milner, R., Wadsworth, C.P.: Edinburgh LCF. Lecture Notes in Computer Science, vol.Ā 78. Springer, Berlin (1979)

    BookĀ  MATHĀ  Google ScholarĀ 

  5. Johnsson, T.: Efficient compilation of lazy evaluation. SIGPLAN Not. 19(6), 58ā€“69 (1984). ACM SIGPLAN 1984 Symposium on Compiler Construction

    ArticleĀ  Google ScholarĀ 

  6. Kahn, G.: Natural semantics. In: Brandenburg, F., Vidal-Naquet, G., Wirsing, M. (eds.) STACS 87. 4th Annual Symposium on Theoretical Aspects of Computer Science, Passau, Germany. Lecture Notes in Computer Science, vol. 247, pp. 22ā€“39. Springer, Berlin (1987)

    ChapterĀ  Google ScholarĀ 

  7. Kam, J.B., Ullman, J.D.: Monotone data flow analysis frameworks. Acta Inform. 7, 305ā€“317 (1977)

    ArticleĀ  MathSciNetĀ  MATHĀ  Google ScholarĀ 

  8. Leroy, X.: The Zinc experiment: an economical implementation of the ML language. Rapport Technique 117, INRIA Rocquencourt, France (1990)

    Google ScholarĀ 

  9. McCarthy, J.: Recursive functions of symbolic expressions. Commun. ACM 3(4), 184ā€“195 (1960)

    ArticleĀ  MATHĀ  Google ScholarĀ 

  10. McCarthy, J., et al.: Lisp 1.5 Programmerā€™s Manual. MIT Press, Cambridge (1962)

    Google ScholarĀ 

  11. Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. MIT Press, Cambridge (1990)

    Google ScholarĀ 

  12. Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML (Revised). MIT Press, Cambridge (1997)

    Google ScholarĀ 

  13. Naur, P.: Checking of operand types in ALGOL compilers. BIT 5, 151ā€“163 (1965)

    ArticleĀ  Google ScholarĀ 

  14. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis, 2nd edn. Springer, Berlin (2005)

    MATHĀ  Google ScholarĀ 

  15. OCaml: Home page. At http://caml.inria.fr/

  16. Peyton-Jones, S.: Haskell 98 Language and Libraries. The Revised Report. Cambridge University Press, Cambridge (2003)

    Google ScholarĀ 

  17. Plotkin, G.D.: A structural approach to operational semantics. Tech. Rep. FN-19, DAIMI, Aarhus University, Denmark (1981)

    Google ScholarĀ 

  18. Sussman, G.J., Steele, G.L.: Scheme: an interpreter for the extended lambda calculus. MIT AI Memo 349, Massachusetts Institute of Technology (1975)

    Google ScholarĀ 

  19. Turner, D.A.: Mirandaā€”a non-strict functional language with polymorphic types. In: Jouannaud, J.P. (ed.) Functional Programming Languages and Computer Architecture, Nancy, France, September 1985. Lecture Notes in Computer Science, vol. 201, pp. 1ā€“16. Springer, Berlin (1985)

    ChapterĀ  Google ScholarĀ 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2012 Springer-Verlag London

About this chapter

Cite this chapter

Sestoft, P. (2012). A First-Order Functional Language. In: Programming Language Concepts. Undergraduate Topics in Computer Science, vol 50. Springer, London. https://doi.org/10.1007/978-1-4471-4156-3_4

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-4156-3_4

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-4155-6

  • Online ISBN: 978-1-4471-4156-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics