ABSTRACT

Programming languages are first and foremost languages and hence they can be understood in terms of our knowledge of natural and other formal languages. The concept of algorithm (although not called such) begins with constructive Euclidean geometry. We start there and consider the development of programming languages not as a subject in itself but a natural outgrowth of the requirements to concisely describe computations through language. We start with a short history of constructive and algebraic mathematics. We then introduce the structural theory of de Sassure and Chomsky to describe the various parts of a contemporary programming language. Our goal is not to be technically deep but to explain the thinking behind the various parts of the language development process.