Program (mathematical object)
A program is a mathematical space suggested by John Backus. He wished to turn computer programming into a formal science by strictly defining it.
Informally, a mathematical space S is a set Sobj of the objects themselves and a set Sopr of operations on Sobj which map (Sobj)n into Sobj and are interrelated by algebraic laws.
Backus argued that if computer programming is to be a science (let alone an engineering discipline) and less of an art, it must become a truly mathematical discipline—and to become a mathematical discipline, he claimed, it is important to find a way to make the space of programs a mathematical space with respect to program-forming operations (functionals) over that space, as distinguished from the space of values and the value-forming operations over it (functions).
The most useful laws are those that display some kind of symmetry, such as the distributive law that relates two operations OA and OB in a manner which OA, combining values formed by OB, is expressed as OB combining values formed by OA. Other, somewhat less useful, laws may display a symmetry that relates more than two operations.
The more and more useful laws present on Sopr, the "stronger" is their algebraic structure and the mathematical structure of the space S.
See also
- Function-level programming
- Value-level programming (contrast)
- FP programming language
External links
es:Programas como objetos matemáticos