415
Book Reviews
mentary mathematical course for programmers. It can serve as a good tool for students and teachers of basic programming, and for advanced appfication programmers who meet problems with computer realization of especially numerical computations. J. IVkNEK Prague School of Economics MiroZovice IS5 Senohraby, Czechoslovakia
L: Peter JENNERGREN Discrete-Events Simulations MT + on a Microcomputer Studentlitteratur,
Models in PASCAL
Lund, Sweden, 135 pages, g7.70
The goal of this book is to outline a simple format for constructing discrete-events simulations models in PASCAL on a microcomputer. No attempt is made to introduce either PASCAL or the simulation technique as such. This means that the book is targeted at a group of practitioners who are already familiar with the simulation technique and who have a good background in PASCAL, in particular with pointers and dynamic record variables. The PASCALformat, first proposed by the author in [l], is presented in Chapter 2. It consists of a set of building blocks (PASCAL procedures and data structures), and a suggested manner of putting these blocks together. More precisely, the author’s approach is of the process-interaction type: temporary entities (i.e., customers), are handled as dynamic record variables, referenced by pointers, and permanent entities (i.e., servers, etc.), are represented by procedures. Finally, the coordination of all these processes is managed by the main program with the help of suitable global variables. At the end of the chapter, a very simple example (a single-server queue), illustrates the concept. Chapter 3 describes a set of procedures of generating random numbers. The random generator is based on the classical multiplicative linear congruent% method. The module RANDOM contains the procedures UNIF for generating uniform random numbers, EXPNTL for generating exponential random numbers through the inverse transform, and NORMAL for generating normal random num-
bers with the polar method. Note that the module RANDOM is designed so that its extension to include additional distributions would be a straightforward task. Chapter 4 further illustrates the simulation format with a detailed study of two examples: the simulation of a Clayworks Loading Yard and the simulation of a Barber Shop. This chapter is primarily (70%) composed of the complete listings of all the procedures which are necessary to solve these two problems. Since the programming style, (particularly the modularization of the problems into subproblems) is excellent, these listings are fairly self-explanatory and they constitute, in my point of view, the most interesting part of the book. Finally, Chapter 5 reconsiders the Barber Shop problem, using the three-phase event scheduling format instead of the process-interaction one. Again, the example is treated in full detail and the study of the listings interestingly shows that many procedures require just a slight adaptation to be reused in the new format. Note, nevertheless, that this chapter can be omitted without losing the main message of the book. To conclude, I believe that Jennergren’s book is well-organized and I recommend its lecture to anyone who is interested in understanding how to program simulation models using a general purpose language which offers dynamic data structures (for example, PASCAL,MODULA, C or PL/l): I must point out, however, that it would require a very large programming effort to provide Jennergren’s format with all the facilities that would extend it to a really productive tool, comparable to existing simulation languages such as SIMULA or GPSS. To my knowledge, there exists already at least one simulation system specially designed for the IBM PC: SWAN, BLOCKS, and PLAYBACK from System Modeling Corporation, Calder Square, P.O. Box 10074, State College, PA 16805 (USA). Jacques PASQUIER-BOLTUCK Institute for Automation and Operations Research University of Fribourg 1700 Fribourg, Switzerland Reference (11Jennergren,L.P. (1983), “Simulation in microcomputers
revisited”,Journal 1053-1056.
of the Operational
Research
Society
34,