In Case Study 6, for example, one subsection is devoted to ... Case Study 17 is a typical sample of the inclusion of general back- ... GTE Automatic Electric Labs.
IEEE TRANSACTIONS ON
212
Case Study 7: Case Study 8: Case Study 9:
Case Study 10: Case Study 11: Case Study 12:
Case Study 13: Case Study 14: Case Study 15: Case Study 16:
Solution of Algebraic Equations (DO group,
ELSE, and sToP statements). Table Reduction (the DO loop and multiple specifications). Interpolation (single subscripted variables, INITIAL, and STATIC attributes). Sorting and Merging (BEGIN block and array expressions). Matrix Multiplication (multiply subscripted variables and array cross sections). Linear Equations (Gaussian elimination and iterative techniques). Boolean Algebra (bit strings, ALL, ANY, STRING, and SUBSTR functions). Pattern Recognition and Graphical Output (character strings, INDEX, and TRANSLATE functions). Bearing Selection Revisited (data structures). List Processing (POINTER variables, CONTROLLED and BASED storage).
Case Study 17: Complex Arithmetic (the COMPLEX attribute). Case Study 18: Linear Equations Revisited (a package of
subroutines).
Appendix: Answers to Selected Exercises. Index As language features are presented, the author gives careful parallel treatment to five common PL/I compilers (model 20, D, F, SL1, and Student PL), noting specifically when a compiler fails to support the language element being discussed. The author also uses footnotes well to supply specific details when needed. This is done smoothly, so that the reader's train of thought is not disrupted by digressions into various levels of detail. The flow of case studies brings the reader into the language and also provides a framework for the presentation of valuable background material. In Case Study 6, for example, one subsection is devoted to a lucid description of error in digital
computing. The text confines itself to standard terminology with few excep-
tions. One such is the usage of the term "chopoff error" where most authors use "truncation." The author explains, in a footnote, that he introduces this new term to avoid the PL/I-specific usage of truncation. This consideration of the reader occurs at other instances in a generally helpful manner. The exercises at the end of each case study go beyond the simplistic case study topic and present a wide variety of topics and techniques. These exercises, in combination with a strong answer appendix, present a good background of related material. The choice of supplemental examples is also a source of general background material. These examples range from the standard engineering and interest-rate types to unusual topics. In Case Study 16, the author refers to the question of whether Shakespeare did indeed write all of the plays and sonnets commonly attributed to him. He then completely develops a list processing technique to study sentence structure of verbal text from the standpoint of binary trees. In the same case study, he uses the pecking order of chickens to discuss orderings and partial orderings of directed graphs, and develops a program to find source and sink nodes. The introduction to conformal mapping in Case Study 17 is a typical sample of the inclusion of general background material. The level of this text is not easily defined, and this is a strong point: it is appropriate at all college levels, valuable for practicing engineers, and a nearly ideal starting point for beginning professional programmers. PLII Programming for Engineering and Science goes well beyond the scope indicated by the title, and is a useful addition to any practicing engineer's library.
P. C. JORGENSEN GTE Automatic Electric Labs. North Lake, Ill. 60164
COMPUTERS, FEBRUARY 1974
B74-7 Basic Programming-P. W. Murrill and C. W. Smith. (Scranton, Pa.: Intext Educational, 1972, 154 pp., $4.50.) This notebook sized paperback is intended to provide an introduction to the BASIC programmiLng language. The text is unfortunately too basic, bordering on the golly-gee whiz, computers are fast syndrome; especially in the first chapter, which introduces digital computers. The level is uneven, an extremely simplistic a standard coverageof BASIC, and a fairly machine dependent coverage of vendor specific implementation information result in a confused image of the intended reader. A glance at the chapter topics shows that the essential material is covered.
introduction,
Chapter
1: Introduction to Digital Computers. Chapter 2: Simple Programs. Chapter 3: Transfer of Control. Chapter 4: Loops. Chapter 5: Arrays. Chapter 6: Input/Output. Chapter 7: Functions and Subroutines. Chapter8: MAT Statements.
The coverage of the material in these chaptersis adequate, but there are several instances when a slight additional effort by the authors would have resulted in a much better text. One example of this occurs in the section on roundoff error in Chapter 2. The authors state that the real number 1, "would either be represented by 0.9999995 or 1.0000005," thus the reader "may find that 1.0 + 1.0 = 1.999999. A better example would have been (1./3.)*3. # 1. Then a brief discussion could explain that the inability to represent the fraction 3 is the source of the error. The only other major criticism of the text is that several parts, for example typing error correction, are presented in terms peculiar to the vendor of the timesharing service used by the authors. Taken at a high school senior or college freshman level, Basic Programming is a reasonable introductory text. Each chapter includes pertinent exercises, and these are fairly standard (interest rates and calculation of factorials). The text is complete, and answers to selected exercises are given. Other than the exercises, there is little in the text that could not be found in manuals provided by timesharing service vendors. PAUL JORGENSEN GTE Automatic Electric Labs. Inc. North Lake, Ill. 60164
B74-8 Design of Man-Computer Dialogues-J. Martin. (Englewood Cliffs, N. J.: Prentice-Hall, 1973, 559 pp., $15.95.) It might be said that this book points in the direction of our society's current renewed emphasis on the human. In order to make dialogues that people will use, the systems designer should become aware of the user, who is not a machine but a human being, and become aware, too, of the user's particular needs, sensitivities, and psychological reactions to conversing with a computer. For as Martin states in his introduction, "the future growth of the computer industry and the acceptance of computer methods will depend largely on the successful establishment of effective man-machine communications." The book itself is a very valuable, remarkably thorough, comprehensive, and practical guide to the design of the dialogues that take place between man and machine at computer terminals. The book is full of pertinent considerations the designer might not think of (and judging from current dialogues, many designers are unaware of), but considerations nevertheless which will make the difference between success and failure. The considerations are presented in a coherent, well-organized, and extremely readable style. Furthermore, there are many places in this book where Martin provides a succinct and comprehensive list of all methods (or factors or considerations)
used in some aspect of dialogue design. Such lists are invaluable to