FP (programming language): Difference between revisions

Content deleted Content added
m convert special characters (via WP:JWB)
Link suggestions feature: 2 links added.
 
(27 intermediate revisions by 15 users not shown)
Line 1:
{{Short description|Programming language}}
{{Infobox programming language
|name = FP
Line 11 ⟶ 12:
|implementations =
|dialects = FP84
|influenced_by = [[APL (programming language)|APL]]<ref name="Hudak 1989">[httphttps://haskelldl.csacm.yale.eduorg/wp-contentdoi/uploads/2011/0110.1145/cs72551.pdf72554 The Conception, Evolution, and Application of Functional Programming Languages] {{Webarchive|url=https://web.archive.org/web/20160311204021/http://haskell.cs.yale.edu/wp-content/uploads/2011/01/cs.pdf |date=2016-03-11 }} Paul Hudak, 1989</ref>
|influenced = [[FL (programming language)|FL]], [[Haskell (programming language)|Haskell]], [[Joy (programming language)|Joy]]
}}
 
'''FP''' (short for ''functional programming'')<ref name="Backus 1977"/> is a [[programming language]] created by [[John Backus]] to support the [[function-level programming]]<ref name="Backus 1977"/> 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 (programming language)|APL]] which was developed by [[Kenneth E. Iverson]] in the early 1960s.<ref name=acm/>
 
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,<ref>{{cite web|last1=Yang|first1=Jean|title=Interview with Simon Peyton-Jones|url=https://www.cs.cmu.edu/~popl-interviews/peytonjones.html|website=People of Programming Languages|date=2017}}</ref> 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:
 
{{quoteblockquote|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.<ref name="Backus 1977"/>}}
 
FP itself never found much use outside of academia.<ref name="p21">{{cite web|last1=Hague|first1=James|title=Functional Programming Archaeology|url=http://prog21.dadgum.com/14.html|website=Programming in the Twenty-First Century|date=December 28, 2007}}</ref> In the 1980s Backus created a successor language, [[FL (programming language)|FL]], which wasas an internal project at [[IBM Research]].
 
== Overview ==
Line 94 ⟶ 95:
{{Reflist|refs=
<ref name="Backus 1977">{{Cite journal | doi = 10.1145/359576.359579| title = Can programming be liberated from the von Neumann style?: A functional style and its algebra of programs| journal = Communications of the ACM| volume = 21| issue = 8| pages = 613| year = 1978| last1 = Backus | first1 = J. | doi-access = free}}</ref>
<ref name=acm>{{cite web |title=Association for Computing Machinery A. M. Turing Award |url=http://signallake.com/innovation/JBackus032007.pdf }}{{Dead link|date=March 2024 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
}}
*''Sacrificing simplicity for convenience: Where do you draw the line?'', John H. Williams and Edward L. Wimmers, IBM Almaden Research Center, Proceedings of the FIfteenthFifteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, San Diego, CA, January 1988.
 
==External links==
* [https://pointfree-interpreter.github.io/ FP-Interpreter] written in Delphi/Lazarus
;FP Implementations
* [http://dirkgerrits.com/publications/john-backus.pdf#section.9 Dirk Gerrits: Turing Award lecture (1977-1978) ff], in John W. Backus (Publications)
* [http://www.cse.sc.edu/~bays/group9/index1.html Interactive FP] (requires Java), [http://www.cse.sc.edu/~bays/group9/Vhelp.html Help page]
* FP84 vs FL: [https://dl.acm.org/doi/pdf/10.1145/73560.73575 Sacrificing simplicity for convenience: Where do you draw the line?] J.H. William and E.L. Wimmers, 1988 (Pages 169–179)
* [https://fp-system.github.io FP trivia] (German)
 
[[Category:Academic programming languages]]