As a textbook example of a compiler is often students' introduction to the programming language programs that process other programs, the authors believe that it should not offend good software engineering principles as many texts do. Watt (U. of Glasgow) and Brown (Robert Gordon U., Scotland) exemplify such principles while explaining the specific techniques needed to build compilers and interpreters with the object-oriented programming language Java. Appends answers to selected exercises, informal specification of the programming language triangle, description of the abstract machine TAM, and class diagrams for the triangle compiler. Annotation c. Book News, Inc., Portland, OR (booknews.com)