The comparison of programming languages
John Bannister Goodenough · 1968
This paper presents some results of research into the nature of computer programming languages. One purpose of this research was to develop methods for describing programming languages so that fundamental similarities (and differences) are made explicit in a form that allows languages to be compared easily. Although one must consider fundamental properties in order to make insightful comparisons of languages, it is by no means sufficient to have just a means of describing purported “fundamental” aspects of languages, since the fundamental nature of programming languages is, to say the least, open to question. Hence it is also necessary to have a theoretical framework that can be used to prove or disprove the existence of hypothesized fundamental aspects of programming languages. Without such a framework, findings about programming languages have the status of personal opinions that are difficult to prove right or wrong. Moreover, the use of a theoretical framework forces us to make explicit our assumptions about programming languages, and we can therefore better avoid the use of inconsistent or inappropriate assumptions. Hence, in this paper we consider how programming languages might be represented so that insightful comparisons of fundamental properties can be made, and we present the beginnings of a suitable explicit theoretical framework.