Book Description
This third edition is a complete and thorough revision of the last edition including the following: Discussions have been added in the "phenomenology" of programming languages and the rolse od conceptual models in language design; also, a discussion of system implementation languages, with an emphasis on C, has been added. Programming environments are discussed, as illustrated by the Interlisp system. This is in the context of a discusssion of language characteristics conducive to rich programming environments. Furthermore, since window-oriented interfaces are now more widely known, their description has been eliminated from the discussion of SmallTalk, except for a few historical remarks. This permits some new discussion of recent developments in object oriented programming (including C++, Ada 95, CLOS, Java, and the like), to the extent that they support the overall objectives of the book. Also, the discussion of multiple inheritance has been expanded.
The purpose of this book is to teach the skills required to design programming languages. These skills are summarized in a number of principles, which are illustrated by case studies of several programming languages representing the five major generations of programming language design.
This text is designed for a graduate course in Computer Science; the course is commonly called Programming Languages, Comparitive Languages, or Theory of Programming Languages. It could be used for any course in programming languages, even if the emphasis is not on design. In such cases it might have to be supplemented with another book containing detailed language descriptions. In addition, it might also be an auxillary text in a course on human interfeace design or software engineering.