FL (short for "Function Level") is a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
created at the
IBM Almaden Research Center
IBM Research is the research and development division for IBM, an American multinational information technology company headquartered in Armonk, New York, with operations in over 170 countries. IBM Research is the largest industrial research or ...
by
John Backus
John Warner Backus (December 3, 1924 – March 17, 2007) was an American computer scientist. He directed the team that invented and implemented FORTRAN, the first widely used high-level programming language, and was the inventor of the Backu ...
, John Williams, and Edward Wimmers in the 1980s and documented in a report from 1989. FL was designed as a successor of Backus' earlier
FP language, providing specific support for what Backus termed
function-level programming
In computer science, function-level programming refers to one of the two contrasting programming paradigms identified by John Backus in his work on programs as mathematical objects, the other being value-level programming.
In his 1977 Turing A ...
.
FL is a dynamically typed strict
functional programming
In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declar ...
language with throw and catch exception semantics much like in
ML. Each function has an implicit history argument which is used for doing things like strictly functional
input/output
In computing, input/output (I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system. Inputs are the signals ...
(I/O), but is also used for linking to
C code. For doing optimization, there exists a type-system which is an extension of
Hindley–Milner type inference.
Uses
PLaSM
PLaSM (Programming Language of Solid Modeling) is an open source scripting languageA. Paoluzzi: Geometric Programming for Computer Aided Design, Wiley, 2003 for solid modeling, a discipline that constitutes the foundation of computer-aided design ...
is a "geometry-oriented extension of a subset of the FL language"
first described in 1992.
References
External links
FL Language Manual, Parts 1 and 2(PDF)
List of FL papersat plasm.net
Introduction to FL and PLaSM(PDF)
Programming languages created in 1989
Academic programming languages
Dynamically typed programming languages
Function-level languages
{{prog-lang-stub