GPSS(ID:141/gps003)General Purpose Systems SimulatorGeneral 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
References: in [JCC 20] Proceedings of the Eastern Joint Computer Conf. Washington, D.C. 1961 view details in [JCC 20] Proceedings of the Eastern Joint Computer Conf. Washington, D.C. 1961 view details in IBM Systems Journal 1(1) 1962 view details in IBM Systems Journal 1(1) 1962 view details "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 in ACM Computing Reviews 4(01) January-February, 1963 view details in ACM Computing Reviews 4(01) January-February, 1963 view details 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 in ACM Computing Reviews 6(06) November-December 1965 view details in ACM Computing Reviews 6(06) November-December 1965 view details in Computers & Automation 16(6) June 1967 view details in Computers & Automation 16(6) June 1967 view details in Computers & Automation 16(6) June 1967 view details 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 in [ACM] CACM 15(07) (July 1972) view details in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details in ACM Computing Reviews 15(04) April 1974 view details 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 in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States 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 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 in SIGPLAN Notices 13(11) Nov 1978 view details in SIGPLAN Notices 13(11) Nov 1978 view details in SIGPLAN Notices 13(11) Nov 1978 view details in SIGPLAN Notices 13(11) Nov 1978 view details in SIGPLAN Notices 13(11) Nov 1978 view details in IBM Journal of Research and Development, 25(5), September 1981 25th anniversary issue view details 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 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 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 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 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 in ACM Computing Reviews March 1982 view details in The 27th Winter Simulation Conference 3-6 December 1995 Hyatt Regency Crystal City, Arlington, VA view details |