FP (programming language)

FP
ParadigmFunction-level
Designed byJohn Backus
First appeared1977
Dialects
FP84
Influenced by
APL[1]
Influenced
FL, Haskell, Joy

FP (short for functional programming)[2] is a programming language created by John Backus to support the function-level programming[2] paradigm. It allows building programs from a set of generally useful primitives and avoiding named variables (a style also called tacit programming or "point free"). It was heavily influenced by APL developed by Kenneth E. Iverson in the early 1960s.[3]

The FP language was introduced in Backus's 1977 Turing Award paper, "Can Programming Be Liberated from the von Neumann Style?", subtitled "a functional style and its algebra of programs." The paper sparked interest in functional programming research,[4] eventually leading to modern functional languages, which are largely founded on the lambda calculus paradigm, and not the function-level paradigm Backus had hoped. In his Turing award paper, Backus described how the FP style is different:

An FP system is based on the use of a fixed set of combining forms called functional forms. These, plus simple definitions, are the only means of building new functions from existing ones; they use no variables or substitutions rules, and they become the operations of an associated algebra of programs. All the functions of an FP system are of one type: they map objects onto objects and always take a single argument.[2]

FP itself never found much use outside of academia.[5] In the 1980s Backus created a successor language, FL as an internal project at IBM Research.

  1. ^ The Conception, Evolution, and Application of Functional Programming Languages Archived 2016-03-11 at the Wayback Machine Paul Hudak, 1989
  2. ^ a b c Cite error: The named reference Backus 1977 was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference acm was invoked but never defined (see the help page).
  4. ^ Yang, Jean (2017). "Interview with Simon Peyton-Jones". People of Programming Languages.
  5. ^ Hague, James (December 28, 2007). "Functional Programming Archaeology". Programming in the Twenty-First Century.