Oxford University Press

Publication Year 2007

ISBN 9780195691122

ISBN-10 0195691121


Edition 3rd
Language (English)

Computer hardware & operating systems

Design is an essential topic for all computer science students regardless of whether or not they will ever have to create a programming language. The user who understands the motivation for various language facilities will be able to use them more intelligently; the compiler writer to implement them more reasonably. This new edition of Principles of Programming Languages covers both design and implementation issues important for computer users and compiler writers. It goes beyond these basic topics to cover descriptive tools as well as historical precedents so that design issues can be communicated and viewed in their historical context. Principles of programming languages are emphasized, not the details of language syntax. Principles of programming languages are emphasized, not the details of language syntax. Methods of implementation are emphasized over the specific techniques. A horizontal organization, analyzing individual languages in their entirety makes this book unique. 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 roles 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 discussion 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 Small Talk, 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, Comparative 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 axillary text in a course on human interface design or software engineering. Provides instruction to key design and implementation skills essential for language designers, compiler writers, and other computer scientists. Covers descriptive tools and historical precedents so that students can understand design issues in their historical perspectives. DLC: Programming languages (Electronic computers).