This book is intended as a text for a course in programming languages. The pre requisites for such a course are insight in structured programming and knowledge as well as practical experience of at least one (e.g., Pascal) of the programming languages treated in the book. The emphasis is on language concepts rather than on syntactic details. The book covers a number of important language concepts that are related to data struc tures. The comparison of the programming languages Pascal, Algol 68, PL/1 and Ada consists in investigating how these concepts are supported by each of these languages. Interesting evaluation criteria are generality, simplicity, safety, readability and portability. The study of programming languages is based on a simple model called SMALL. This model serves as a didactic vehicle for describing, comparing and evaluating data structures in various programming languages. Each chapter centers around a specific language concept. It consists of a general discussion followed by a number of language sections, one for each of the languages Pascal, Algol 68, PL/1 and Ada. Each of these sections contains a number of illustrating program fragments written in the programming language concerned. For each program fragment in one language, there is an analogous fragment in the others. The book can be read "vertically" so that the programming languages Pascal, Algol 68, PL/1 and Ada are encountered in that order several times. A "horizontal" reading of the book would consist in selecting only those sections which only concern one language.