DYNAMO(ID:61/dyn004)

DYNAmic MOdels simulation  


DYNAmic MOdels simulation

Phyllis Fox & A.L. Pugh, Industrial Dynamics Group, MIT 1959

Continuous simulation including economic, industrial and social systems.

"These shortcomings were corrected by DYNAMO (DYNAmic MOdels), written by Phyllis Fox (Mrs. George Sternlieb) and Alexander L. Pugh, III, and completed in the spring of 1959.  Mr. Roberts
modified and improved the plotting routine, and Grace Duren and David J. Howard assisted with other phases of the program. The program was rewritten the following summer by the same team.  Following this effort the maintenance of DYNAMO became the responsibility of Mr. Pugh.  When M.I.T. replaced the 704 with the 709, DYNAMO was converted to run on the new machine. In 1962, Jay W. Forrester of M.I.T. suggested a relaxation of the requirements on initial values, which was implemented. When C.T.S.S. (Compatible Time Sharing System) became generally available, DYNAMO was modified to operate under it.  This facility made it possible to create, debug, and run a model in a matter of hours, the output returning directly back to the console"

Hardware:
Related languages
SIMPLE => DYNAMO   Evolution of
DYNAMO => DYNAMO II   Extension of

References:
  • Bemer, R "ISO TC97/SC5/WGA(1) Survey of Programming Languages and Processors" December 1962 view details
          in [ACM] CACM 6(03) (Mar 1963) view details
  • Pugh, A. L., III. "DYNAMO User's Manual" The MIT Press, 2nd Ed. 1963. view details
          in [ACM] CACM 6(03) (Mar 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] CACM 6(03) (Mar 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] CACM 6(03) (Mar 1963) view details
  • Gear, C. W. review of Pugh 1963 view details Abstract: The second edition of this little book consists of three chapters: a user primer, a reference manual and a brief description of how the program works -- the program being a package for processing DYNAMO problem-oriented language. The language consists of a series of statements describing first order difference

    equations, primarily intended for modeling dynamic economic systems. Its appeal to the economist lies in its problem-oriented format; a user'schooled in procedural languages may at first be misled by statements that are not necessarily executed in order. A wider class of users may find its flexible graphical and tabular output helpful. The package is available on the IBM 7000 series through SHARE.

    The language suffers from an excessive number of restrictions on its algebraic forms. The book suffers from an excessive amount of forward referencing and references to another book [ FORRESTER, J. W. Industrial Dynamics, MIT Press, Cambridge, 1961 ] such that a reader unfamiliar with the ideas will find it hard to pick up the features of the language. It is adequate as a program manual, but inadequate as a primer.
          in ACM Computing Reviews 6(05) September-October 1965 view details
  • Hutchinson, G. K. review of Krasnow et al 1964 view details
          in ACM Computing Reviews 6(06) November-December 1965 view details
  • Lubin, John Francis and Teichroew, Daniel "Computer simulation—discussion of the technique and comparison of languages" pp723-741 view details
          in [ACM] CACM 9(10) October 1966 view details
  • Naylor, Thomas H.; Balinfty, Joseph L.; Burdick, Donald S.; Chu, Kong "Computer simulation techniques". Corr. print. New York: Wiley 1968. XI I 1,352 S. view details
          in [ACM] CACM 9(10) October 1966 view details
  • Gordon, Geoffrey: System simulation. Englewood Cliffs, N. J.: Prentice-Hall 1969. view details
          in [ACM] CACM 9(10) October 1966 view details
  • Sammet, Jean E. "Computer Languages - Principles and History" Englewood Cliffs, N.J. Prentice-Hall 1969. view details Extract: DYNAMO
    One of the earliest of the simulation languages, and the only one discussed here which is continuous, is DYNAMO; this was developed at M.I.T. and completed as early as 1959 on the l B M 704. Versions were developed on the 709 and 7090 computers. A significantly improved version, DYNAMO II, was written using AED-0 and was running on the 7094. Plans exist for making DYNAMO II available on the IBM System/360 and GE 645. Only DYNAMO (I) is discussed here.

    DYNAMO is a continuous system, meaning that every basic variable is continuous and has a first derivative with respect to time. DYNAMO actually approximates the continuous process by a set or first-order difference equations. In this sense it is similar to the languages discussed in Section IX.2.4, but the area of usage is the same as the others in this section. Level equations are used to describe the basic variables. A level at TIME K depends only upon the preceding time instant (TIME 3) and the rates of change over the time interval JK (K = J + DT), where DT is a standard time increment. For example, an inventory at TIME K (=IAR.K) is equal to the inventory at TIME J (=IAR.J), plus what was received during the interval JK (=SRR.JK), minus what was shipped during the interval JK (=SSR.JK). This is represented by the level equation

    IAR.K =IAR.J + (DT) (SRR.JK - SSR.JK)

    While that happens to be equivalent to the exact language format, most equations are represented differently than normally written. For example,

    V= V + (DT) ((P+Q)/Y) is actually punched exactly as

    V.K = V.J+(DT) (1/±Y)({}P+Q)

    Multiplication is generally noted implicitly, i.e., without any intervening operator.

    DYNAMO assumes that it is dealing with a continuous process with each state variable having its Level and all derivatives with respect to time existing and known at each instant of time. DYNAMO also provides auxiliary equations to allow more complicated variables, initial value equations, constants, and tables for defining arbitrary functions. DYNAMO obtains results by performing a sequential solution of all the equations describing the system to be simulated.

          in [ACM] CACM 9(10) October 1966 view details
  • PUGH, Alexander L., III: "DYNAMO II user's manual". Cambridge, Mass.; London: MIT Press 1970. X,73 S. ISBN 0-262-66012-1 view details Extract: PREFACE
    PREFACE

    DYNAMO is a computer program for building and running "continuous" simulation models (models which can be described by a set of differential equations).  It was developed by the Industrial Dynamics Group at the Massachusetts Institute of Technology for simulating dynamic feedback models of business, economic, and social systems, but nothing in its design precludes its use for any continuous system.
    DYNAMO has been designed for the person who is problem-oriented rather than computer-oriented.  It makes available easy-to-use computing facilities so that you can focus your attention on building a useful model, undistracted by complex computer requirements.
    DYNAMO'S requirements with respect to the order in which statements appear are trivial, contributing greatly to the ease of using it.  DYNAMO figures out which variables must be computed first, and will even initialize many variables for you.
    DYNAMO thoroughly checks models for errors before trying to run them.  Run-time errors as well as compiler errors are reported in English rather than by number, so that most of the time you will not need the manual to understand an error message.  You will never be left with just a system "dump" to describe an error.
    The mechanics of running DYNAMO are very simple.  Both tabulated and plotted output can be specified easily.  Even the results of different runs can be compared directly (displayed on a single graph or tabulated listing).  This is especially useful for evaluating a policy or parameter change.
    The DYNAMO language includes time subscripts that enable you to comprehend easily how the calculations are made.  These subscripts describe a very simple integration scheme (rectangular or Euler's method), which is also very efficient when great accuracy is not required.  As you gain confidence that DYNAMO isn't doing anything you don't know about, you will be free to concentrate on designing your model and ignore the computational details.  (For the mathematically-minded, DYNAMO IV offers the option of using a third-order Runge-Kutta integration method.)
    Experienced users should note that DYNAMO offers two facilities to simplify the construction of large models.  User-defined functions, or macros, can be written in standard DYNAMO statements with DYNAMO II, III, and IV.  (FORTRAN, or other language, programs can be linked to DYNAMO models via the External Function Facility.)  DYNAMO III and IV also offer the use of arrays, to simplify the modeling of repeated structures.
    Extract: BRIEF HISTORY OF DYNAMO
    BRIEF HISTORY OF DYNAMO
    The history of DYNAMO begins with a program called SIMPLE (Simulation of Industrial Management Problems with Lots of Equations), written by Richard K. Bennett in the spring of 1958 for the IBM 704 Computer.  SIMPLE contained most of the basic features of DYNAMO, including the plotting routine (written by Edward B. Roberts); but the model specifications had to be stated in a rather primitive form, and very few checks were performed on these specifications.  These shortcomings were corrected by DYNAMO (DYNAmic MOdels), written by Phyllis Fox (Mrs. George Sternlieb) and Alexander L. Pugh, III, and completed in the spring of 1959.  Mr. Roberts
    modified and improved the plotting routine, and Grace Duren and David J. Howard assisted with other phases of the program.
    The program was rewritten the following summer by the same team.  Following this effort the maintenance of DYNAMO became the responsibility of Mr. Pugh.  When M.I.T. replaced the 704 with the 709, DYNAMO was converted to run on the new machine. In 1962, Jay W. Forrester of M.I.T. suggested a relaxation of the requirements on initial values, which was implemented. When C.T.S.S. (Compatible Time Sharing System) became generally available, DYNAMO was modified to operate under it.  This facility made it possible to create, debug, and run a model in a matter of hours, the output returning directly back to the console.
    In 1965 it was decided to rewrite DYNAMO.  Although the input language gave the appearance of actual equations, DYNAMO I was basically a macro expansion program.  Simple algorithms for algebraic translation were now well understood and could be utilized in DYNAMO II to relax the restrictions on equation formulation.  Furthermore, higher-level languages had advanced to the point where they could be used as source languages to simplify the chore of rewriting the compiler. Finally, the third generation of hardware was rapidly replacing the equipment for which DYNAMO was written, and some sort of rewrite would be required before long.
    AED (Algol Extended for Design) was chosen as the source language because it appeared to be one of the two or three languages then in existence having the power to do the job and because both the language and its authors were available at M.I.T.  The choice proved to be wise.  AED did have the necessary power; only about 2 percent of the compiler is written in assembly language.  The availability of AED on both machines greatly simplified the conversion from the 7094 (CTSS) to the. S/360.  (Donald A. Belfer assisted in this conversion.)
    DYNAMO II was designed to accept models written for DYNAMO I with few changes. Most models will run with no changes or perhaps one, although models that contain boxcars now require DYNAMO III. The meaning of the asterisk was changed to multiplication as in most algebraic languages. (Back-to-back parentheses continue to imply multiplication.) Error checking was extensive in DYNAMO I; error recovery has been the object in DYNAMO II. Only a few errors preclude the running of a model.
    In response to the demand for DYNAMO on computers other than the IBM 360-370 computers, Richard Wright and Mr. Pugh of the consulting firm of Pugh-Roberts Associates, Inc., developed a FORTRAN-based version in 1971. DYNAMO II/F translates a model into FORTRAN and supports its execution with the standard DYNAMO functions and output routines. As this version is entirely written in FORTRAN, the only hardware requirement for its installation is a computer that supports a version of FORTRAN relatively close to the full American National Standard.
    Interactive (time sharing) versions of DYNAMO have been popular since the advent of the first CTSS version.  DYNAMO II was first checked out as an interactive version, and the first S/360 DYNAMO operated under CP67/CMS.  In 1971, the interactive version was converted to the RAX operating system by Pugh-Roberts Associates and Boston University, and in 1972 this version was tuned to the TSO system.  An interactive version of DYNAMO II/F was developed in 1972 by Mr. Wright.
    An interactive version of DYNAMO suggests the possibility of interaction during the simulation.  The user might examine the state of the system and decide what action he feels is appropriate.  Such a version of DYNAMO has been developed by Mr. Pugh and is referred to as Gaming DYNAMO, as gaming is one of the obvious uses for such a system.  A game is constructed from all the usual DYNAMO equation types plus one additional type ? Decision.  Decisions are those variables that can be changed during interaction with the game.  The current Gaming DYNAMO was developed by D. Ross Hunter of Pugh-Roberts Associates, Inc. as an extension to DYNAMO/F.
    In response to the growing number of models containing sectors repeated several times to represent reality in a more disaggregate manner, an array-handling capability was added to DYNAMO by William A. Shaffer and Mr. Pugh of Pugh-Roberts Associates.  This version, designated DYNAMO III, was designed to be consistent with FORTRAN'S and implemented within the framework of DYNAMO II/F.  Through the vehicle of implicit DO loops, equations involving arrays can occur in any order, retaining DYNAMO'S minimal requirements on the order of model statements.
    The growing size of DYNAMO III models, in conjunction with the size limitation of IBM's FORTRANs, led Mr. Pugh to develop during 1976 a DYNAMO III compiler, specifically for IBM computers, that will compile huge models rapidly.  This version is referred to as DYNAMO HI/370.  Between 1976 and 1983, Mr. Pugh made numerous improvements to DYNAMO HI/370, most notably, the addition of the PRESERVE and RESUME feature.  In 1983, Mr. Hunter and Todd Sjoblom of Pugh-Roberts Associates, Inc. developed DYNAMO III/F+, to incorporate as many of the DYNAMO HI/370 features as possible in a FORTRAN-based DYNAMO.
    To support schools and colleges that were teaching System Dynamics, but only had access to mini-computers, Dr. Shaffer developed Mini-DYNAMO for Pugh-Roberts Associates, Inc. in 1976.  Unlike earlier DYNAMOs, Mini-DYNAMO interpreted rather than executed the code it generated so that runtime errors, such as division by zero, could be reported in a manner the user could easily understand.  Recently, microcomputers have become readily affordable both by schools and by individuals. To make DYNAMO available on such machines, Jay P. Werb of Pugh-Roberts Associates, Inc., converted Mini-DYNAMO to run on the Apple II computer in 1981. (While the language of Mini-and Micro-DYNAMO are upward compatible with DYNAMO II, III, and IV, the reference manuals for those programs are the Mini-
    DYNAMO user's Guide, William A. Shaffer, 1977, published by Pugh-Roberts Associates, Inc., and User Guide and Reference Manual for Micro-DYNAMO, Pugh-Roberts Associates, Inc., 1982, published by Addison-Wesley.)
    Documenting any computer program has always been tedious. To simplify the mechanical chore of merging variable definitions following the equations where they are used, Mr. Pugh wrote the Documentor in 1960.  Once DYNAMO had been converted to the S/360 he rewrote it in AED.  In 1976, Mr. Hunter rewrote it again and improved it.  This time it was written in FORTRAN so that it could be run on practically any machine supporting DYNAMO.  Mr. Hunter also wrote chapter 7 of this book, the DOCUMENTOR/F user's Manual.
    The early development of DYNAMO was supported financially by the Ford Foundation, International Business Machines, Project MAC at the Massachusetts Institute of Technology, and Humble Oil and Refining Co. Extract: BRIEF HISTORY OF DYNAMO
    BRIEF HISTORY OF DYNAMO
    The history of DYNAMO begins with a program called SIMPLE (Simulation of Industrial Management Problems with Lots of Equations), written by Richard K. Bennett in the spring of 1958 for the IBM 704 Computer.  SIMPLE contained most of the basic features of DYNAMO, including the plotting routine (written by Edward B. Roberts); but the model specifications had to be stated in a rather primitive form, and very few checks were performed on these specifications.  These shortcomings were corrected by DYNAMO (DYNAmic MOdels), written by Phyllis Fox (Mrs. George Sternlieb) and Alexander L. Pugh, III, and completed in the spring of 1959.  Mr. Roberts
    modified and improved the plotting routine, and Grace Duren and David J. Howard assisted with other phases of the program.
    The program was rewritten the following summer by the same team.  Following this effort the maintenance of DYNAMO became the responsibility of Mr. Pugh.  When M.I.T. replaced the 704 with the 709, DYNAMO was converted to run on the new machine. In 1962, Jay W. Forrester of M.I.T. suggested a relaxation of the requirements on initial values, which was implemented. When C.T.S.S. (Compatible Time Sharing System) became generally available, DYNAMO was modified to operate under it.  This facility made it possible to create, debug, and run a model in a matter of hours, the output returning directly back to the console.
    In 1965 it was decided to rewrite DYNAMO.  Although the input language gave the appearance of actual equations, DYNAMO I was basically a macro expansion program.  Simple algorithms for algebraic translation were now well understood and could be utilized in DYNAMO II to relax the restrictions on equation formulation.  Furthermore, higher-level languages had advanced to the point where they could be used as source languages to simplify the chore of rewriting the compiler. Finally, the third generation of hardware was rapidly replacing the equipment for which DYNAMO was written, and some sort of rewrite would be required before long.
    AED (Algol Extended for Design) was chosen as the source language because it appeared to be one of the two or three languages then in existence having the power to do the job and because both the language and its authors were available at M.I.T.  The choice proved to be wise.  AED did have the necessary power; only about 2 percent of the compiler is written in assembly language.  The availability of AED on both machines greatly simplified the conversion from the 7094 (CTSS) to the. S/360.  (Donald A. Belfer assisted in this conversion.)
    DYNAMO II was designed to accept models written for DYNAMO I with few changes. Most models will run with no changes or perhaps one, although models that contain boxcars now require DYNAMO III. The meaning of the asterisk was changed to multiplication as in most algebraic languages. (Back-to-back parentheses continue to imply multiplication.) Error checking was extensive in DYNAMO I; error recovery has been the object in DYNAMO II. Only a few errors preclude the running of a model.
    In response to the demand for DYNAMO on computers other than the IBM 360-370 computers, Richard Wright and Mr. Pugh of the consulting firm of Pugh-Roberts Associates, Inc., developed a FORTRAN-based version in 1971. DYNAMO II/F translates a model into FORTRAN and supports its execution with the standard DYNAMO functions and output routines. As this version is entirely written in FORTRAN, the only hardware requirement for its installation is a computer that supports a version of FORTRAN relatively close to the full American National Standard.
    Interactive (time sharing) versions of DYNAMO have been popular since the advent of the first CTSS version.  DYNAMO II was first checked out as an interactive version, and the first S/360 DYNAMO operated under CP67/CMS.  In 1971, the interactive version was converted to the RAX operating system by Pugh-Roberts Associates and Boston University, and in 1972 this version was tuned to the TSO system.  An interactive version of DYNAMO II/F was developed in 1972 by Mr. Wright.
    An interactive version of DYNAMO suggests the possibility of interaction during the simulation.  The user might examine the state of the system and decide what action he feels is appropriate.  Such a version of DYNAMO has been developed by Mr. Pugh and is referred to as Gaming DYNAMO, as gaming is one of the obvious uses for such a system.  A game is constructed from all the usual DYNAMO equation types plus one additional type ? Decision.  Decisions are those variables that can be changed during interaction with the game.  The current Gaming DYNAMO was developed by D. Ross Hunter of Pugh-Roberts Associates, Inc. as an extension to DYNAMO/F.
    In response to the growing number of models containing sectors repeated several times to represent reality in a more disaggregate manner, an array-handling capability was added to DYNAMO by William A. Shaffer and Mr. Pugh of Pugh-Roberts Associates.  This version, designated DYNAMO III, was designed to be consistent with FORTRAN'S and implemented within the framework of DYNAMO II/F.  Through the vehicle of implicit DO loops, equations involving arrays can occur in any order, retaining DYNAMO'S minimal requirements on the order of model statements.
    The growing size of DYNAMO III models, in conjunction with the size limitation of IBM's FORTRANs, led Mr. Pugh to develop during 1976 a DYNAMO III compiler, specifically for IBM computers, that will compile huge models rapidly.  This version is referred to as DYNAMO HI/370.  Between 1976 and 1983, Mr. Pugh made numerous improvements to DYNAMO HI/370, most notably, the addition of the PRESERVE and RESUME feature.  In 1983, Mr. Hunter and Todd Sjoblom of Pugh-Roberts Associates, Inc. developed DYNAMO III/F+, to incorporate as many of the DYNAMO HI/370 features as possible in a FORTRAN-based DYNAMO.
    To support schools and colleges that were teaching System Dynamics, but only had access to mini-computers, Dr. Shaffer developed Mini-DYNAMO for Pugh-Roberts Associates, Inc. in 1976.  Unlike earlier DYNAMOs, Mini-DYNAMO interpreted rather than executed the code it generated so that runtime errors, such as division by zero, could be reported in a manner the user could easily understand.  Recently, microcomputers have become readily affordable both by schools and by individuals. To make DYNAMO available on such machines, Jay P. Werb of Pugh-Roberts Associates, Inc., converted Mini-DYNAMO to run on the Apple II computer in 1981. (While the language of Mini-and Micro-DYNAMO are upward compatible with DYNAMO II, III, and IV, the reference manuals for those programs are the Mini-
    DYNAMO user's Guide, William A. Shaffer, 1977, published by Pugh-Roberts Associates, Inc., and User Guide and Reference Manual for Micro-DYNAMO, Pugh-Roberts Associates, Inc., 1982, published by Addison-Wesley.)
    Documenting any computer program has always been tedious. To simplify the mechanical chore of merging variable definitions following the equations where they are used, Mr. Pugh wrote the Documentor in 1960.  Once DYNAMO had been converted to the S/360 he rewrote it in AED.  In 1976, Mr. Hunter rewrote it again and improved it.  This time it was written in FORTRAN so that it could be run on practically any machine supporting DYNAMO.  Mr. Hunter also wrote chapter 7 of this book, the DOCUMENTOR/F user's Manual.
    The early development of DYNAMO was supported financially by the Ford Foundation, International Business Machines, Project MAC at the Massachusetts Institute of Technology, and Humble Oil and Refining Co.
          in [ACM] CACM 9(10) October 1966 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 76 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

    [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
          in [ACM] CACM 9(10) October 1966 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 86 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 194 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in Computers & Automation 21(6B), 30 Aug 1972 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