From Algebras to Programming Languages
This paper gives an informal presentation of constructions which, when combined, enable one to construct high level programming languages from algebras or, equivalently, from collections of primitive operations on some set (e.g. from the arithmetic, vector and logical operations on the set of integers, integer vectors, and truth values). Using this approach one can construct languages with block structure, procedures, procedure calls by both name and value, plus essentially simpler concepts such as assignment statements and conditional transfers. The constructions are algebraic in the sense that they are constructions on algebras which yield new algebras. However, for the sake of comprehensibility, we present them in this paper in a more informal manner as constructions on “black boxes”. This paper is a continuation of work presented earlier in [3] and [4] and owes much to the joint work to be reported in [5].