The Philosophy and Design of the Simufort Language

By Norman R. NielsenGary V. Fulscher
1972| Working Paper No. 68

The training of students in the techniques of system simulation is more than merely teaching them how to program in a simulation language. Yet, all too often projects or class exercises become bogged down in the tricks necessary to “outsmart” a particular language’s limitations. It was this type of problem that led to the development at Stanford of Simufort (SIMUlation with FORTran), a language designed and implemented specifically for the teaching of simulation concepts to students. Simufort is now implemented as a translator, converting Simufort statements into Fortran IV for subsequent compilation. The translator itself is written in USASI Fortran IV for more general applicability. Because of the dependence upon Fortran, Simufort is at present an event oriented simulation language without recursion. The paper describes the various capabilities which are provided directly by Simufort statements. These can roughly be divided into four classes. The first class relates to the declaration of global variables as well as of the structures for entities and queues. The second class of statements relates to the manipulation of entities - creation, destruction, addition to or deletion from queues, reference to or change of attribute values, etc. The third class relates to the scheduling and processing of events. The fourth class of statements relates to the collection, summarization, and reporting of statistical data developed during a simulation run. A large number of stochastic generators are also included as system routines. Although the language statements have been designed to facilitate a beginner’s use, the system is much more than the statements themselves. In order to assist the student during actual usage, a comprehensive set of error checks and diagnostic messages has been included, operating both at translate time and at run time. A series of tracing capabilities have also been provided for run time debugging assistance. The Simufort package itself contains self-monitoring features. These provide feedback to the faculty member as to the types of errors being made by his students and ideas to the designer as to desirable language and/or system improvements that could be made.