Essential concepts of programming language design and implementation are explained and illustrated in the context of the objectoriented programming language (OOPL) paradigm. Written with the upperlevel undergraduate student in mind, the text begins with an introductory chapter that summarizes the essential features of an OOPL, then widens