The title of this book contains the words ALGORITHMIC LANGUAGE, in the singular. This is meant to convey the idea that it deals not so much with the diversity of programming languages, but rather with their commonalities. The task of formal program development proved to be the ideal frame for demonstrating this unity. It allows classifying concepts and distinguishing fundamental notions from notational features; and it leads immediately to a systematic disposition. This approach is supported by didactic, practical, and theoretical considerations. The clarity of the structure of a programming language designed according to the principles of program transformation is remarkable.
Of course there are various notations for such a language. The notation used in this book is mainly oriented towards ALGOL 68, but is also strongly influenced by PASCAL - it could equally well have been the other way round. In the appendices there are occasional references to the styles used in ALGOL, PASCAL, LISP, and elsewhere.
The book is divided clearly into three parts: the first four chapters concentrate on the level of applicative formulation, which is characterized by function application as the dominant language element, and includes problem specifications. The transition to the level of procedural formulation - which is characterized by the appearance of program variables - is motivated in Chap. 4 and carried out in Chaps. 5 and 6. In Chap. 7, further development leads to concepts which are particularly important in systems programming for present-day machines: organized stores, pointers and nexuses; characteristically, on this level program variables and pointers are in some sense considered as independent objects.
The transitions between these levels are described by definitional transformations. More generally, we view the entire process of programming as being a chain of program transformations; the individual classes of transformation rules prove to be an excellent didactic means for structuring the material.