GPSS(ID:141/gps003)

General Purpose Systems Simulator 


General Purpose Systems Simulator. Geoffrey Gordon, IBM 1959-1960

Discrete simulations.

Based on a redesign of the Gordon Simulator, and the first true generalised systems simulator


Related languages
Gordon Simulator => GPSS   Evolution of
GPSS => APLGPSS   Incorporated features of
GPSS => APL-GPSS   Incorporated features of
GPSS => GPSS II   Evolution of
GPSS => GPSSS   Incorporated some features of
GPSS => PL/I GPSS   Incorporated features of
GPSS => SIMCOM   Influence

References:
  • Gordon, G. "A general purpose systems simulation program" view details
          in [JCC 20] Proceedings of the Eastern Joint Computer Conf. Washington, D.C. 1961 view details
  • Gordon, G. "Preliminary manual for GPS – A general purpose systems simulator" (Technical memorandum 17-048). IBM, White Plains, N.Y. October 6, 1961 view details
          in [JCC 20] Proceedings of the Eastern Joint Computer Conf. Washington, D.C. 1961 view details
  • Gordon, G. "A general purpose systems simulator" pp18–32 view details Abstract: Systems engineers have come to recognize simulation as a valuable tool in their work. However, writing simulation programs can be a difficult, time consuming task requiring intricate and extensive programming. For simulation to be most useful, it must be possible to carry out a simulation quickly and be possible to change the simulation easily as the system design proceeds. This paper describes a general purpose simulation program designed to simplify the task of simulating systems. It is applicable to a wide variety of important problems. The program features a simple block diagram language with which to describe the system to be simulated. Given this description, the program will automatically simulate the system. pdf
          in IBM Systems Journal 1(1) 1962 view details
  • [IBM] General Purpose Systems Simulator II. B 20-6346 149 pp. view details
          in IBM Systems Journal 1(1) 1962 view details
  • Perstein, M. H. review of Gordon 1961 view details Abstract: This is a well-written 18-page report of a program which has been proved in use. It is easy to read and falls just short of being a users' manual. There are one or two typographical errors in the diagrams which shouldn't be very troublesome. The program implements a language for describing systems in block- diagram style with 25 possible block types. The program, which exists in 704, 709, and 7090 versions, operates the described model in its handling of "transactions" and gathers desired statistics.

    "The particular block types that have been selected represent the accumulated experience of many users.... The rather limited language provided by the program has not been a significant restriction on the users; instead it has tended to clarify the description of system concepts...."

          in ACM Computing Reviews 4(01) January-February, 1963 view details
  • Efron, R., and Gordon, G. "A general purpose digital simulator and examples of its application: Part I - description of the simulator" IBM Sys. J. 8, 1, pp22-34 view details
          in ACM Computing Reviews 4(01) January-February, 1963 view details
  • Krasnow, Howard S.; and Merikallio, Reino A. "The past, present, and future of general simulation languages" Mgmt. Sci. 11(2) Nov. 1964 pp236-267. view details
          in ACM Computing Reviews 4(01) January-February, 1963 view details
  • Crisman, P. A. (Ed.) The time-sharing system: a programmer's guide. (2nd ed.) M.I.T. Press, Cambridge,Mass., 1966 view details Extract: LAnguages and Subsystems available
    This edition is a major revision and extension of the first, to incorporate the changes to the (CTSS) Compatible Time-Sharing System during the past two years. The manual itself is organized into sections for easy referencing and to facilitate future expansion and modification. The manual is maintained on-line within the system in an attempt to keep all system documcutation continuously up to date. A system user can keep his manual updated by periodically inspecting a table of contents and requesting an on-line printout of those sections which have been revised since he last updated his copy.

    Some features of the CTSS which are detailed in this edition are: password logic, introduction of more elaborate accounting features, inter-console message, public files, and macrocommands. A new file system was implemented to remove some previous weaknesses and to test a prototype of the file system which is proposed for the next timesharing system.

    Available languagcs and subsystems include AED (modified ALGOL), BEFAP, COGO-90, COMIT, DYNAMO, ESL DisplaySystem, LAPC, GPSS, MAD, T\IADTHN, SNOBOL, STRESS, and BLOW (BLODI Diagram Compiler). The manual presents a brief description of general subroutines and a description of commands for the creation, editing, compression, printing, and housekeeping of files, program execution and debugging.

          in ACM Computing Reviews 4(01) January-February, 1963 view details
  • Hutchinson, G. K. review of Krasnow et al 1964 view details
          in ACM Computing Reviews 6(06) November-December 1965 view details
  • Samuel, A.L. "Time Sharing on a Multiconsole Computer" MIT-LCS-TR-017 1965 view details
          in ACM Computing Reviews 6(06) November-December 1965 view details
  • Sammet, Jean E., "Roster of Programming Languages 1967" view details
          in Computers & Automation 16(6) June 1967 view details
  • Gordon, Geoffrey: System simulation. Englewood Cliffs, N. J.: Prentice-Hall 1969. view details
          in Computers & Automation 16(6) June 1967 view details
  • Greenberg, Stanley: "GPSS primer". New York: Wiley-Interscience 1972 view details
          in Computers & Automation 16(6) June 1967 view details
  • Kay, I. M. "Digital Discrete Simulation Languages. Discussion and Inventory" view details Extract: GPSS
    GPSS (General-Purpose Systems Simulator). GPSS, developed originally by G. Gordon at IBM, is the most popular discrete-event simulation language. GPSS is process-oriented, containing a repertoire of flowchart-like blocks (Gordon, 1969). It also provides a large variety of autonomously generated measurements about the simulated model. Since its original version, it has appeared in subsequent, more powerful versions: GPSS-II, -III, -IV, -V, and -360. Current versions provide limited capability for using Fortran and assembly language subroutines. GPSS-360 Norden is a proprietary version developed by Reitman and associates, which through a CRT display unit, provides conversational features, user-interactive input, and control.

          in Kay Ira M. and John McLeod,(Eds.), Progress in Simulation. New York: Gordon and Breach 1972 view details
  • Rosen, S. "Programming Systems and Languages 1965-1975" view details Abstract: In spite of impressive gains by PL/I, Fortran and Cobol remain the languages in which most of the world's production programs are written and will remain so into the foreseeable future. There is a great deal of theoretical interest in Algol 68 and in extensible languages, but so far at least they have had little practical impact. Problem-oriented languages may very well become the most important language development area in the next five to ten years. In the operating system area all major computer manufacturers set out to produce very ambitious multiprogramming systems, and they all ran into similar problems. A number of university projects, though not directly comparable to those of the manufacturers, have contributed greatly to a better understanding of operating system principles. Important trends include the increased interest in the development of system measurement and evaluation techniques, and increased use of microprogramming for some programming system functions. DOI
          in [ACM] CACM 15(07) (July 1972) view details
  • Wells, Mark B. "A review of two-dimensional programming languages" pp1-10 view details
          in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details
  • Purvy, R. E. (1973). A flowchart-to-source-code conversion program for GPSS/360. Urbana,, Dept. of Computer Science University of Illinois at Urbana-Champaign. view details
          in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Leavenworth, Burt M.; Sammet, Jean E. "An overview of nonprocedural languages" pp1-12 view details Abstract: This paper attempts to describe some of the basic characteristics and issues involving the class of programming languages commonly referred to as ?nonprocedural? or ?very high level?. The paper discusses major issues such as terminology, relativeness, and arbitrary sequencing. Five features of nonprocedural languages are described, and a number of specific languages are discussed briefly. A short history of the subject is included.
    Extract: GPSS
    GPSS has been attractive to nonprogrammers because of its block diagram, or flow graph, orientation and the fact that sequencing of transactions was determined by properties of the data and state configurations of the system, rather than by explicit control flow specification in more conventional programming ianguages.
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Schriber, T. J. (1974). Simulation using GPSS. New York,, Wiley. view details
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Gordon, G. "The Application of GPSS V to Discrete System Simulation", P-H 1975. view details
          in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details
  • Gordon, Geoffrey "The development of the General Purpose Simulation System (GPSS)" view details Abstract: The General Purpose Simulation System (GPSS) is a programming system designed for the simulation of discrete systems. These are systems that can be modeled as a series of state changes that occur instantaneously, usually over a period of time. Complexities in their analysis arise because there are many elements in the system, and there is competition for limited system resources. The simulation technique uses numerical computation methods to follow the system elements through their changes of state, and predicts properties of the system from measurements on the model. GPSS came into existence rapidly, with virtually no planning, and surprisingly little effort. It came rapidly because it filled an urgent need that left little time for exploring alternatives. The lack of planning came from a happy coincidence of a solution meeting its problem at the right time. The economy of effort was based on a background of experience in the type of application for which the language was designed, both on the part of the designer and the early users.
    Extract: The First GPSS
    The First GPSS
    Experience with the Gordon Simulator had uncovered some anomalies. Minor changes in the block diagram that logically made no difference could cause significant differences. Some examples are: adding or removing blocks that do not represent system actions, like blocks gathering statistics; changing the order of blocks when the sequence of the actions they represent is irrelevant; or moving the calculation of a time from one block to another.

    The basic cause was the manner of handling simultaneous events. The apparently minor change could alter the order in whimh simultaneous events were processed and, sometimes, like the proverbial tiny pebble that moved, cause a complete change in the subsequent course of events. The result was not really an error, since, in the circumstances, the new sequence of events could just as easily have occurred as the first - but it looked like an error. The diagnosis of the trouble had been made early in the use of the program, but, with the pressure of work, the trouble had gone untreated. A lot of thought was now put into redesigning the simulation algorithm to remove the anomalies. The technical details are explained in Sec. 3.5. At the beginning of 1961, a complete rewrite of the program was begun in order to implement the new algorithm that was developed, as well as to incorporate some new block types. A project was established with budget to cover three people. I was joined by two programmers, Mssrs. R. Barbieri and R. Efron, and the program continued through the summer of 1961.

    The program was initially IBM confidential, but, as its use within IBM spread, it was apparent that many other people could use it. The program was brought to the attention of the Cross Industry Marketing Group of IBM, then managed by Mr. Steve Furth, who had among their responsibilities the promotion of application programs of potential use to diverse industrial users. They considered the program to be of general interest, and agreed to sponsor the program as an IBM product.

    The confidential classification of the program was removed early in 1961 so that copies of the then existing program could be given to people outside IBM, on the understanding that it was not supported by IBM. (It was an IBM type III program, for which there is no commitment to correct errors. )

    It took a few more months to stabilize the program and produce proper documentation. When this was done, a press release was made on Sept. 27th 1961, announcing the program as an IBM type II program (that is, with a commitment to correct errors.) A user's manual, dated October 6th 1961 was issued, and the program was made available for use on the IBM 704, 709, and 7090 systems (Gordon 1961a).

    Again the program had not been given a title, and in the haste of preparing for its release it was just called a General Purpose Simulator, or GPS. I shortly realized that this acronym was used by Professors Newell and Simon for a program called General Problem Solver, being used in connection with their work on artificial intelligence. I quickly changed the name to a 'General Purpose Systems Simulator', or GPSS. Later, with the GPSS III release, the name was changed slightly to the 'General Purpose Simulation System.'

    Not only in name but also in substance, I consider that program to be the first that can properly be called the General Purpose Simulation System, although it had only 25 block types. More block types were to be added to later versions, and a major change in the internal structure of the program was to be introduced in the next version of the program, but this 1961 program contained the essential elements of GPSS. In particular, it had the simulation algorithm that was to remain a feature of all following IBM versions of GPSS, at least through GPSS V.

    A paper describing the program was presented at the Eastern Joint Computer Conference, held in Washington, D.C. in December 1961 (Gordon 1961b). Another paper describing that first version of the GPSS progran was published (Gordon 1962a). Later, the flowcharts of that same version of the program were released, (Gordon 1962b).
          in SIGPLAN Notices 14(04) April 1979 including The first ACM SIGPLAN conference on History of programming languages (HOPL) Los Angeles, CA, June 1-3, 1978 view details
  • Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • O'Donovan, T. M. GPSS simulation made simple. Chichester Eng. ; New York, J. Wiley 1979 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Schmidt, B. (1980). GPSS Fortran. Chichester Eng. ; New York, J. Wiley. view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Seprîodi, L. (1980). A GPSS szimulâaciâos nyelv. Budapest, Mîuszaki Kèonyvkiadâo. view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Dunning, K. A. (1981). Getting started in GPSS : General Purpose Simulation System. San Jose, Calif., Engineering Press. view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Sammet, Jean E. "History of IBM's Technical Contributions to High Level Programming Languages" pp520ff view details
          in IBM Journal of Research and Development, 25(5), September 1981 25th anniversary issue view details
  • Allen, F. and Schwartz, J. review of Sammet and Lee HOPL conference end banquet excerpts view details Abstract: The ACM-SIGPLAN History of Programming Languages Conference held in Los Angeles on June 1-3, 1978, was videotaped and excerpts of the presentations are available on two tapes; these and two tapes from the banquet provide brief but penetrating glimpses of the people most involved in the development of the 13 languages covered. At the conference and in the proceedings these leading formulators of the history of programming languages describe how their language was developed -- the historical setting of the work and how and why decisions were made. The videotape excerpts provide a summary of these descriptions.

    After introductory remarks, Jean Sammet, the Conference and Program Committee Chairman, introduces the keynote speaker and "the third programmer of the first large scale digital computer, Mark I," Capt. Grace Hopper of the US Navy. Capt. Hopper describes the very early history -- combining personal recollections and technical observations. It is an excellent historical talk, precisely establishing the milieu existing in the 1940s and early 50s, when the concept of using a computer to create programs was just emerging.

    The FORTRAN presentation by John Backus emphasizes the importance of object efficiency for FORTRAN acceptance. He states that language design was never considered a problem; the real problem was to consistently produce object programs as efficient as hand-coded ones. The presentation captures the clear and unwavering focus of Backus's original team on that goal: a focus and dedication which characterized the direction of one of the most significant software projects in the history of computers.

    The controversies in the committee designing ALGOL 60 are re-enacted in miniature on these tapes. Alan Perlis describes the American contributions, concluding that ALGOL has Influenced all languages since that time. "It's the mother's milk of us all." Peter Naur describes the European contributions and the origins of recursion in the language. A lively floor discussion involving John McCarthy, John Backus, and Fritz Bauer ensues. The Algol 60 committee got involved in "academic log rolling" according to McCarthy who also points out that the committee decision not to consider implementation led to a language which was not implementable as a whole. It was assumed that "everyone was a gentleman and none would propose something he didn't know how to implement. However there was no guarantee the combination was implementable."

    The excerpt on the LISP lecture by John McCarthy emphasizes the features of the language and is an excellent description of its intellectual sources. Jean Sammet in presenting COBOL also clearly defines the influences on the language and how and why the choices were made in a series of committee meetings. These choices were very much colored by the decision to take "a short range composite approach good for at least a year or two."

    The tapes show how differently some of these important languages developed. According to Douglas Ross, APT evolved out of application requirements; by contrast, the major features of JOVIAL were developed in a few minutes, relates Jules Schwartz, its sole designer. Geoffrey Gordon tells how GPSS also grew from feedback from application users. SIMULA, developed by Kristen Nygaard and Ole-Johan Dahl, didn't even start as a programming language. Charles Baker discusses the development of JOSS, and Thomas Kurtz, BASIC -- intended to make learning to program analogous to learning to drive a car: by doing it.

    PL/I was the largest language represented at the conference. According to presenter, George Radin, much of the complexity and size is due to the necessity of defining the result of all operations on mixed types and to implicit typing. The excerpts of the presentations on SNOBOL by Ralph Griswold and APL by Kenneth Iverson establish the specific motivations for those languages: in both cases conserving human resources was considered very important.

    The conference banquet tapes contain anecdotes by the conference speakers and by master of ceremonies Bernard Galler. These entertaining historical asides and footnotes sometimes give more insight into the how and why things happened than the more scholarly analyses. For example, George Radin's story about the PL/I committee's ordering pizza -- the pizza had everything anyone wanted -- says a great deal about how the committee functioned when designing the language.

    These tapes constitute an important historical record. Unfortunately, the quality of the tapes is less than desired. They were not professionally produced and the picture quality is often quite poor. Still-photos by Robert McClure and Richard Wexelblat are used where the videotape is inadequate. However, the excerpts have been well selected by J.A.N. Lee, Jean Sammet, and Henry Tropp.

    In his summary Fred Brooks says that "the best thing about this conference is the character set." He also points out that the presentations on the languages designed by a committee emphasized the process, whereas the presentations on single-author languages emphasized technical issues. These tapes capture the factors that have made the history: the personalities, the process, and the technology. They are interesting now and will be invaluable to future historians of the pioneering period of language development.
          in ACM Computing Reviews March 1982 view details
  • Sauer, C. H. review of Gordon 1978 in ACM Computing Reviews March 1982 view details Abstract:
    GPSS is commonly regarded as the most popular language for discrete event simulation. Unlike other popular languages, such as SIMSCRIPT and SIMULA, GPSS is based on block diagrams describing the simulated system. With one major exception, this paper provides the basis for a thorough understanding of the evolution of GPSS.

    From my point of view, the biggest weakness of GPSS is the Assembly language-like language used to describe the diagrams to the interpreter. (Gordon considers the slowness of execution to be the most significant weakness.) The paper proper does not address this language at all. (The presentation transcript gives a very simple example.) I would have liked to have seen some explanation of the design decisions regarding this language and some explanation of why there was relatively little development of this language.

    Though I would quarrel with some of the assumptions made, e.g., in regard to choice of fixed point vs. floating point for timing and in regard to implementation of GPSS storages, these are minor points. The popularity of GPSS and its unusually effective diagram-oriented approach make this paper required reading for those with serious interest in simulation languages.
          in ACM Computing Reviews March 1982 view details
  • Smillie, K W. review of Sammet 1981 in ACM Computing Reviews September 1982 view details Abstract: This paper gives an assessment of the contributions of IBM to the development of programming languages. It begins with a very brief survey of the development of programming languages in order to place the work of IBM in perspective, followed by a few remarks on Speedcoding and PRINT, two very early attempts within IBM to develop programming languages. The four languages considered by the author to be major contributions by IBM are FORTRAN, GPSS, APL, and PL/I. The summary of the development of these languages is based primarily on the papers presented at the History of Programming Languages Conference in Los Angeles in 1978, and will be familiar to the readers of either the Preprints or the Proceedings of this conference. Several other languages -- Commercial Translator, FORMAC, SCRATCHPAD, QUIKTRAN, and CPS -- which have made important but lesser contributions are discussed briefly. A few remarks are made on IBM's contribution to the syntactic and semantic description of languages with Backus-Naur Form and the Vienna Definition Language, respectively. There is a list of 58 references.

    The author is eminently qualified to have written this paper. She is a long-time employee of IBM, and has written many papers and a definitive book on the development of programming languages. Her account of the contributions of IBM to the development of programming languages is itself a contribution to the subject.
          in ACM Computing Reviews March 1982 view details
  • Steel, T. B. review of Wexelblat 1982 view details Abstract: This compendium is a magnificent book, belongs on the shelf of every information processing professional, and should be required reading for anyone who is to be granted a degree in computer science. While the book purports to be the record of the ACM SIGPLAN Conference on the History of Programming Languages held in Los Angeles in 1978, it is rather more than just that. It is an impressionist painting of a longvanished world whose inhabitants created a structure that has a profound influence, not only today but well into the foreseeable future, on the way all our institutions, commercial, governmental, or academic, conduct their affairs. The languages used to prepare computer programs dictate in many respects the thought patterns of the programmers, the questions they ask their users, the difficulty of implementing particular algorithms, and thus to a considerable extent what actually gets done. Beyond that, while it is premature to predict detailed effects, the consequences to the next generation of being taught these languages in school are certain to be enormous. The volume under review presents an account of how this structure came to be the way it is as seen through the eyes of some of the individuals responsible.

    It is a difficult book to review adequately. One must ask if it conveys the same message to that vast majority of information processing specialists who were not in the business at the time of the events recounted as it does to those of us who played an active role in some of the developments as they happened. Judicious inquiry of younger readers of the book suggests that rather more of the informal flavor comes through than one might suspect at first. In that sense the book "tells it like it was," although some of the text makes it quite clear that programming language designers have the same kind of selective and prismatic memories that other people have.

    The plan of the book is straightforward. Thirteen specific languages were selected by the conference organizers, and the book contains, for each language: a formal paper; a transcript of the presentation; a transcript of remarks by a designated discussant; a transcript of a subsequent question and answer session; the full text of all questions submitted; a biography of the authors. In addition there is the full text of the Keynote Address presented by Captain Grace Murray Hopper, itself required reading, and a series of appendices, including summaries of each language.

    As stated in the introductory material on the organization of the conference, the criteria for selection of the languages to be included were: "that the languages 1) were created and in use by 1967; 2) remain in use in 1977; and 3) have had considerable influence on the field of computing." The 1967 cutoff was to insure at least ten years perspective. The result of applying these criteria was:

    ALGOL 60
    APL
    APT
    BASIC
    COBOL
    FORTRAN
    GPSS
    JOSS
    JOVIAL
    LISP
    PL/I
    SIMULA
    SNOBOL

    This general review cannot pursue the specific language chapters; that is a task for individual reviews elsewhere in CR. Some overall comments are in order, however. The formal papers are not simply personal recollections of the authors. An organized procedure was established to guide each author in preparing an account according to established historical practice, thus maximizing the archival value of the papers. It appears to have worked, for the authors systematically -- and in some cases, apparently, painfully -- searched for old records, letters, and memoranda. The vignettes that surface therefrom are fascinating.

    No one should be surprised that the accounts of the camel (designed by committee) languages, ALGOL 60 and COBOL, have a somewhat different flavor from the others. There is a gold mine for students of decision making processes in this book. The conference organizers are to be commended for providing two accounts of ALGOL 60, one from the American and one from the European point of view. The contrasting perceptions and the almost recursive discussion are both intriguing and delightful.

    This reviewer's one regret is that it was impossible to capture and document the conversations that occurred over the coffee cups and in the corridors. In summary, this is a superb book, a must for all computer professionals. It is also one of the very few records of a conference of any sort where the reader gets a feeling for what it was like to actually be there. This reviewer was there and reading this book almost four years after the conference brought back delightful memories with preternatural clarity.


          in ACM Computing Reviews March 1982 view details
  • Van Deusen, M. review of Wexelblat 1982 view details Abstract: The History of Programming Languages provides a glimpse into the language design process for thirteen important languages. Each language chosen had to have been designed before 1967, to allow historical perspective, and had to still be in use in 1977. The authors were invited because of their central positions in the language design efforts. FORTRAN is described by John Backus, ALGOL by Alan Perlis and Peter Naur, LISP by John McCarthy, COBOL by Jean Sammet, APT by Douglas Ross, JOVIAL by Jules Schwartz, GPSS by Geoffrey Gordon, SIMULA by Kristen Nygaard, JOSS by Charles Baker, BASIC by Thomas Kurtz, PL/I by George Radin, SNOBOL by Ralph Griswold, and APL by Kenneth Iverson. To provide some consistency among so many authors, language coordinators were given the responsibility of providing review and aid to the authors. The result is a work of amazingly high quality.

    The particular interests of the authors show in the variety of organization and emphasis found in the papers. John Backus describes the background of the FORTRAN project, some of the design decisions, the documentation and implementation. Alan Perlis emphasizes the many people involved in the ALGOL design, from before 1958, through the Zurich and Paris meetings, culminating in ALGOL 60. Peter Naur concentrates on the design decisions made between the Zurich and Paris meetings. The disagreements which surface in appendices to his paper make for fascinating reading. Kristen Nygaard describes the many changes which the design of SIMULA went through from 1961 through 1971, from SIMULA I to SIMULA 67.

    The book is not a dry history -- many statements seem particularly surprising in hindsight. John Backus says of FORTRAN, "As far as we were aware, we simply made up the language as we went along. We did not regard language design as a difficult problem, merely a simple prelude to the real work of designing a compiler which could produce efficient programs." Jean Sammet stresses with regard to COBOL, "We were going to recommend a short range composite approach good for at least the next year or two."

    The history of the technical decisions is particularly well researched and presented. Many ideas were taken directly from other languages, such as the separation of the data description and executable statements in COBOL, deriving from FLOW-MATIC. Some seemed to occur almost casually, such as Thomas Kurtz commenting on the design of BASIC, "Around 1960 or 1961, after a visit to the PDP-1 time-shared computer at MIT, I can clearly recall John McCarthy saying, 'Why don't you guys do time sharing?' Shortly afterward I said to Kemeny, 'I think we ought to do time sharing.' Kemeny responded, 'OK.' And that was that!" Other decisions stemmed from deadlocks, as Alan Perlis described, when a European member of the ALGOL committee declared "No! I will never use a period for a decimal point." The proposal from Joseph Wegstein for three levels of language calmed the situation. The ALGOL paper and appendices by Peter Naur present different views of the same experience. Even a project consisting of only two people can produce its share of excitement. Kristen Nygaard describes the shock of a switchboard operator at overhearing a violent argument between two men in a hallway. She was reassured that it was just Dahl and Nygaard discussing SIMULA.

    One thing which emerges from many of the papers is the deep involvement which a language design can elicit from its designers. John Backus and Jean Sammet both describe many late, long hours.

    But this book is not just a series of papers by knowledgeable authors. It is itself a history of the History of Programming Languages Conference held in Los Angeles in 1978. Jean Sammet, the General Chairman, describes how the conference was put together. There are many valuable ideas here for potential conference organizers. The Conference Historian, Henry Tropp, provides a historical perspective and suggests archiving of design papers. The keynote address is by Grace Hopper. Its transcript captures the qualities of innovation and humor which make her talks such an experience. The author talks are based on the papers, so there is much redundancy of material. The main value to be gained by the duplication is the opportunity to discover the human side of the authors, which comes out in the more informal relation to the audience. Jean Sammet brings down the house with her lament that students are not given more than a passing exposure to COBOL before they receive their degrees in computer science.

    The question and answer sessions were often as interesting as the talks. The book gives John Backus's answer to the question why the letters I through N were chosen to designate integers. The readability of these sections attest to the effort which Richard Wexelblat put into the editing of this volume. The History of Languages represents a tremendous amount of effort from a great many people, and is a book which programmers as well as language designers will find both instructive and enjoyable.
          in ACM Computing Reviews March 1982 view details
  • Schriber, T. J. (1990). Simulation using GPSS. Malabar, Fla., Krieger Pub. Co. view details
          in ACM Computing Reviews March 1982 view details
  • Nance, Richard E. "Simulation programming languages: an abridged history" view details
          in The 27th Winter Simulation Conference 3-6 December 1995 Hyatt Regency Crystal City, Arlington, VA view details