Essential concepts of programming language design and implementation are explained and illustrated in the context of the object-oriented programming language (OOPL) paradigm. Written with the upper-level undergraduate student in mind, the text begins with an introductory chapter that summarizes the essential features of an OOPL, then widens the discussion to categorize the other major paradigms, introduce the important issues, and define the essential terms. After a brief second chapter on event-driven programming (EDP), subsequent chapters are built around case studies in each of the languages Smalltalk, C++, Java, C#, and Python. Included in each case study is a discussion of the accompanying libraries, including the essential container classes. For each language, one important event-driven library is singled out and studied. Sufficient information is given so that students can complete an event-driven project in any of the given languages. After completing the course the student should have a solid set of skills in each language the instructor chooses to cover, a comprehensive overview of how these languages relate to each other, and an appreciation of the major issues in OOPL design.

Key Features

  • Provides essential coverage of Smalltalk origins, syntax, and semantics, a valuable asset for students wanting to understand the hybrid Objective C language
  • Includes a companion disc with source code and figures from the text.
  • Provides detailed case studies of Smalltalk, Java, C++, C#, and Python and features a side-by-side development of the Java and C++ languages--highlighting their similarities and differences
  • Sets the discussion in a historical framework, tracing the roots of the OOPLs back to Simula 67
  • Provides broad-based coverage of all languages, imparting essential skills as well as an appreciation for each language’s design philosophy
  • Includes chapter summary, review questions, and exercises in each chapter, and an appendix with event-driven projects.

Table of Contents

Chapter 1 A Context-Sensitive Introduction
Chapter 2 Event-Driven Programming
Chapter 3 Smalltalk and the Squeak Environment
Chapter 4 C++ and Java Commonalities and Similarities
Chapter 5 Additional Concepts from the C++ Language
Chapter 6 Visual Studio and the Microsoft Foundation Classes
Chapter 7 Java and the Swing Library
Chapter 8 C# and the Common Language Infrastructure
Chapter 9 Python