The FP and FL programming languages: Assorted resources/linkdump
FP, FL, and miscellaneous dialects of those two languages represent an interesting chapter in the history of programming languages.
In 1977, as he received the Turing award for his creation of FORTRAN nearly two decades earlier, John Backus (also the co-creator of Backus-Naur Form) gave a highly interesting lecture entitled Can programming be liberated from the von Neumann style? . In it, he makes the rather interesting choice of condemning FORTRAN, and all its numerous descendants (in other words, every language around at the time except several LISP dialects)
In place of the the Von-Neumann style languages which won him the Turing award, he proposes “Function-Level” programming. He uses this term interchangeably with “Functional” programming, but it should emphatically NOT be associated with the “modern” term functional programming (Scheme, Haskell, Scala, ML, et. al.) — this is referred to as “Applicative Programming” in his notes.
Though much has been lost to URL decay, the list below contains most of the information I’ve been able to gather about Function Level programming, its motivations and implementations, in the hope someone might find them useful.
Links to various interesting resources (no particular order)
- https://www.thocp.net/biographies/papers/backus_turingaward_lecture.pdf — Backus’ original paper proposing the FP language.
- https://en.wikipedia.org/wiki/FP_(programming_language) — FP wiki article
- https://en.wikipedia.org/wiki/FL_(programming_language) — FL wiki article
- http://theory.stanford.edu/~aiken/publications/trs/RJ7100.pdf — FL language manual
- http://theory.stanford.edu/~aiken/publications/trs/FLProject.pdf — The FL project — design of a functional language
- http://www.cs.unc.edu/techreports/88-027.pdf — Paper detailing the construction of a compiler for FP. Contains some blissfully optimistic remarks about the longevity of the FP language and the promise of the FL prototype language.
- http://www.plasm.net/docs/tutorial/introduction_to_fl_and_plas.html — PLaSM is, as far as I know, the only language which inherits directly from FL
- http://www.fp-system.org/ — Apparently a FP interpreter? Have not tried it and cannot attest to it being virus-free, downloader beware
- http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/prolog/impl/fp_lp/fp/0.html — A FP to C transpiler. Includes a number of examples!
- http://lambda-the-ultimate.org/node/1164 , http://lambda-the-ultimate.org/classic/message4172.html , http://lambda-the-ultimate.org/node/2649 — Fun discussions on FP and FL
- https://ccrma.stanford.edu/~jos/pdf/FunctionalProgramming-p359-hudak.pdf — Paper on history of functional programming, including a discussion of Backus’ paper, language, influences (especially from APL) and their impacts
- https://prog21.dadgum.com/14.html — Describes influence of FP on J
- https://cse.sc.edu/~bays/group9/index1.html — Java applet FP interpreter
- http://progopedia.com/language/fp/ — Progopedia article on FP; has more sample code/theory than wikipedia.
- http://www.math.bas.bg/bantchev/place/fp.html — Sample code in FP
- http://canonical.org/~kragen/tmp/backus-rebuttal.html — Comprehensive, incomplete rebuttal to Backus’ arguments
- http://www.cs.unc.edu/techreports/88-022.pdf — PhD Thesis implementing an extension of Backus’ FP
- https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19870002073.pdf — NASA paper, notably compares operational semantics of FP with Lisp and other “Lambda style” functional languages
- https://code.google.com/archive/p/fp-interpreter-in-lisp/ — FP interpreter in CLisp
- https://link.springer.com/chapter/10.1007/3-540-10699-5_91 — Paper by Backus giving his take on FP vs “lambda programming” and the pros and cons of not having variables
- https://en.m.wikipedia.org/wiki/Function-level_programming#Contrast_to_functional_programming — wiki article on function-level programming
- https://en.m.wikipedia.org/wiki/Joy_(programming_language) — Joy, a stack-based functional language “influenced” by FP