Point-free programming language
Point-free programming offers the possibility of programming at the functional level. Points are the ties to variables commonly used in the lambda calculus notation (λx . Λy . M). The first known point-free programming language was an FP system by John W. Backus , which he presented in an essay on the occasion of the 1977 Turing Award . He called this FP (from the English Functional Programming), although it was a PF (point-free programming technique) in which he propagated a variable-free style. This variable-free style was only made possible through the use of the composition . Since he avoided the use of variables, he instead used numbers as selectors that accessed the positions of an array that he offered in the argument of a function. A limited number of program-forming combiners were also used, with the help of which simple primitives and programs were combined to form more complex programs.
Today we also know the point-free style as a variant use in the purely functional Haskell programming language . The programming language FP trivia, which is a continuation of Backus' FP systems, tries to use this style; however, instance variables can also be used for better documentation of the programs - in the same point-free style. Not to be forgotten are the concatenative languages with their most famous programming language Joy, which has found many imitators.
Purpose of dot-free programming and languages
Although the point-free style - especially observed in Joy - can lead to an "obfuscation" of the source code, this style also has some mathematical advantages over languages that are only limited to lambda variables. The closed character of a point-free programming language enables an "algebra of programming", that is, a mathematical processing of the source code , similar to how one gets taught in school for the term transformation of equations. This means that nothing stands in the way of the mathematical treatment of the programs if attention was paid to the referential transparency of the language.
Known dot-free programming languages
- Backus' FP systems
- Formally FP
- FP trivia
- FL (from Function-Level, research project) and PLaSM
- J , by Kenneth E. Iverson and Roger Hui
- Joy ( Concatenative Programming Language - stack-oriented) and the whole family
Web links
- FP interpreter in Lisp
- FP trivia
- Joy , Official Joy Programming Language Website (La Trobe University), Concatenative language
- mjoy , an interpreter for machine drawing
- Jsoftware and Wiki
- What's point-free programming?
References
- ^ John Backus: Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs . Ed .:. In: Communications of the ACM. Vol. 21, No. 8, August 1978, pp. 613-641. ( online [PDF]).
- ↑ Point Free - HaskellWiki. Retrieved April 24, 2020 .
- ↑ Obfuscation - HaskellWiki. Retrieved May 3, 2020 .
- ^ Richard Bird and Oege de Moor: Algebra of Programming. Prentice Hall Europe, 1997, accessed May 3, 2020 .