DYNAMO (programming language)
{{Short description|Simulation language & graphical notation}}
DYNAMO (DYNAmic MOdels) is a simulation language and accompanying graphical notation developed within the system dynamics analytical framework. It was originally for industrial dynamics but was soon extended to other applications, including population and resource studies{{Cite book
| last = Taylor | first = Peter J.
| title = Unruly complexity: ecology, interpretation, engagement
| publisher = University Of Chicago Press
| year = 2005
| isbn = 0-226-79036-3 }}
and urban planning.{{Cite book
| last = Karayanakis | first = Nicholas Mark
| title = Computer-assisted simulation of dynamic systems with block diagram languages
| publisher = CRC Press | date = 24 June 1993
| url = https://books.google.com/books?id=mmH3toUOI0gC&q=dynamo&pg=PA5
| isbn = 0-8493-8971-2 }}
| last1 = Swanson | first1 = Carl V.
| last2 = Raymond J. | first2 = Waldmann
| title = A Simulation Model Of Economic Growth Dynamics
| journal = Journal of the American Planning Association
| volume = 36 | issue = 5 | pages = 314–322
| publisher = Routledge: Taylor & Francis Group
| date = September 1970
| doi = 10.1080/01944367008977327
}}
DYNAMO was initially developed under the direction of Jay Wright Forrester in the late 1950s, by Dr. Phyllis Fox,{{cite web
| title = Resume and brief autobiography for Phyllis Fox, for Wellesley College Class of 1944 Record Book
| date = January 1974
| work = SIAM history website
| url = http://history.siam.org/sup/Fox_resume_bio.pdf
}}
| author1 = Michael J. Radzicki
| author2 = Robert A. Taylor
| title = Origin of System Dynamics
| work = Introduction to System Dynamics: Version 1.0
| publisher = U.S. Department of Energy Office of Policy and International Affairs
| url = http://www.systemdynamics.org/DL-IntroSysDyn/origin.htm
| access-date = 2011-09-23
| archive-date = 2017-06-20
| archive-url = https://web.archive.org/web/20170620213227/http://www.systemdynamics.org/DL-IntroSysDyn/origin.htm
| url-status = dead
}}
Alexander L. Pugh III, Grace Duren,{{Cite web
| first = Thomas (interviewer)
| last = Haigh
| title = Phyllis Fox
| work = The History of Numerical Analysis and Scientific Computing Oral Histories
| publisher = Society for Industrial and Applied Mathematics
| year = 2005
| url = http://history.siam.org/oralhistories/fox.htm
| format = PDF
| access-date = 12 May 2010 }}
and others{{cite web
| title = D-Memos 0 - 499
| publisher = System Dynamics Society
| url = http://www.systemdynamics.org/MITCollectionDmemos0-499.htm
| access-date = 2010-05-08
| archive-url = https://web.archive.org/web/20171023094520/http://www.systemdynamics.org/MITCollectionDmemos0-499.htm
| archive-date = 2017-10-23
| url-status = dead
}}
at the M.I.T. Computation Center.{{cite book
| url = https://books.google.com/books?id=VXtbAAAAMAAJ
| title = DYNAMO User's Manual
| year = 1963
| publisher = MIT Press
| pages = 2–3 }}
DYNAMO was used for the system dynamics simulations of global resource depletion reported in the Club of Rome's Limits to Growth,{{cite book
| title = The limits to growth: the 30-year update
| last1 = Meadows | first1 = Donella | author1-link = Donella Meadows
| last2 = Randers | first2 = Jørgen | author2-link = Jørgen Randers
| last3 = Meadows | first3 = Dennis | author3-link = Dennis Meadows
| page = 285
| publisher = Chelsea Green Pub.
| year = 2004
| isbn = 1-931498-51-2 }}
but has since fallen into disuse.
Beginnings
In 1958, Forrester unwittingly instigated DYNAMO's development when he asked an MIT staff programmer to compute needed solutions to some equations, for a Harvard Business Review paper he was writing about industrial dynamics.{{cite book
| author = Forrester, J.W.
| title = Industrial Dynamics
| publisher = MIT Press
| location = Cambridge MA
| year = 1961
| isbn = 1-883823-36-6 }}
The programmer, Richard Bennett, chose to implement a system (SIMPLE - "Simulation of Industrial Management Problems with Lots of Equations") that took coded equations as symbolic input and computed solutions. SIMPLE became the proof-of-concept for DYNAMO: rather than have a specialist programmer "hard-code" a special-purpose solver in a general purpose programming language, users could specify a system's equations in a special simulation language and get simulation output from one program execution.
Design goals
DYNAMO was designed to emphasize the following:
- ease-of-use for the industrial dynamics modeling community (who were not assumed to be expert programmers);
- immediate execution of the compiled model, without producing an intermediate object file; and
- providing graphical output, with line printer and pen plotter graphics.
Among the ways in which DYNAMO was above the standard of the time, it featured units checking of numerical types and relatively clear error messages.
Implementation
The earliest versions were written in assembly language for the IBM 704, then for the IBM 709 and IBM 7090. DYNAMO II was written in AED-0, an extended version of Algol 60.{{Citation
| last1 = Ross | first1 = D.T.
| last2 = Ward | first2 = J.E.
| title = Investigations in Computer-Aided Design for Numerically Controlled Production
| journal = Tech Report, Electronic Systems Laboratory, Electrical Engineering Department, MIT
|date=May 1967
| url = http://dspace.mit.edu/bitstream/handle/1721.1/755/FR-0351-19563962.pdf.txt?sequence=2
}}
| last = Sammet | first = J.E. | author-link = Jean Sammet
| title = Programming Languages: History and Fundamentals
| publisher = Prentice Hall
| date = Aug 1969
| pages = 651
| isbn = 0-13-729988-5 }}
Dynamo II/F, in 1971, generated portable FORTRAN code{{Cite journal
| title = Proceedings of the Annual Pittsburgh Conference on Modeling and Simulation
| pages = 1270
| publisher = Instrument Society of America. Pittsburgh Section
| location = University of Pittsburgh. School of Engineering
| year = 1975
| url = https://books.google.com/books?id=MwYqAQAAIAAJ&q=dynamo.ii+fortran
| issn = 0198-0092
| access-date = 12 May 2010}}
and both Dynamo II/F and Dynamo III improved the system's portability by being written in FORTRAN.
Computer & Control Abstracts,
Volume 11,
Institute of Electrical and Electronics Engineers
p.1591
Originally designed for batch processing on mainframe computers, it was made available on minicomputers in the late 1970s,{{cite journal
| title = 'Dynamo' Now on Minis
| journal = Computerworld
| date = 5 Jun 1978
| url = https://news.google.com/newspapers?id=9XkbAAAAIBAJ&pg=6221,5184477&dq=pugh-roberts+dynamo&hl=en }}
and became available as "micro-Dynamo" on personal computers in the early 1980s.{{Cite book | last = Roberts | first = Nancy | title = Introduction to computer simulation: the system dynamics approach | publisher = Addison-Wesley | date = September 1982 | url = https://archive.org/details/introductiontoco0000unse_r5v0 | isbn = 0-201-06414-6 }}
The language went through several revisions from DYNAMO II up to DYNAMO IV in 1983,DYNAMO User's Manual, Sixth Edition, {{ISBN|0-262-66052-0}}
Impact and issues
Apart from its (indirectly felt) public impact in environmental issues raised by the controversy over Limits to Growth, DYNAMO was influential in the history of discrete-event simulation even though it was essentially a package for continuous simulation specified through difference equations."A History of Discrete Event Simulation Programming Languages", Richard E. Nance, TR 93-21, Dept. of Comp. Sci., Virginia Polytechnic Institute and State University (cross-listed as Systems Research Center report SRC 93-003), June 11, 1993 [http://eprints.cs.vt.edu/archive/00000363/01/TR-93-21.pdf] It has been said by some to have opened opportunities for computer modelling even for users of relatively low mathematical sophistication.The electronic oracle: computer models and social decisions (1985), Donella H. Meadows, Jenny M. Robinson, John Wiley & Sons Inc, {{ISBN|0-471-90558-5}} On the other hand, it has also been criticized as weak precisely where mathematical sophistication should be required"An interview with
Phyllis A. Fox", SIAM website oral history, p.26 [http://history.siam.org/pdfs2/Fox_final.pdf]: "Besides the servo-mechanism approach, [Forrester] used extrapolation, which is notoriously problematic, and unstable. You know yourself that you can’t extrapolate forever. It doesn’t work." and for relying only on Euler integration.
Notes
{{Reflist}}
Bibliography
- Introduction to System Dynamics Modeling with Dynamo (1981), George P. Richardson; Alexander L. Pugh III, Pegasus Communications, {{ISBN|1-883823-43-9}}
- Modeling the Environment: An Introduction To System Dynamics Modeling Of Environmental Systems (1999), Andrew Ford, Island Press, {{ISBN|1-55963-601-7}}
- Appendix D: Dynamo
- "The Prophet of Unintended Consequences", Lawrence M. Fisher, strategy+business #40 Autumn 2005 [http://www.strategy-business.com/media/file/sb40_05308.pdf]
- Corporate Planning and Policy Design: A System Dynamics Approach (1981), James M. Lyneis, (MIT Press/Wright-Allen Series in System Dynamics) {{ISBN|0-262-12083-6}}
- Modeling for Learning Organizations (2000), John D.W. Morecroft, John D. Sterman; Productivity Press (System Dynamics Series) (Hardcover) {{ISBN|1-56327-250-4}}
- Dynamics of growth in a finite world (1974), Dennis L. Meadows, Wright-Allen Press, {{ISBN|0-9600294-4-3}}
- Appendix C: How to Read a DYNAMO Flow Diagram;
- Appendix D: How to Read Dynamo Equations
- Appendix E: How to Read a DYNAMO Graphical Output
- Computer-Assisted Theory Building: Modeling Dynamic Social Systems (1988), Dr. Robert Hanneman, Sage Publications, Inc., 0803929617
- Computer Simulation in Management Science (1998), Michael Pidd, Wiley, {{ISBN|0-471-97931-7}}
- Simulation for the social scientist (2005), G. Nigel Gilbert, Klaus G. Troitzsch, Open University Press, {{ISBN|0-335-21600-5}}
External links
- [https://web.archive.org/web/20110309023917/http://hopl.murdoch.edu.au/showlanguage.prx?exp=61&language=DYNAMO DYNAMO] - excerpt from manual contains much more detailed history.
{{Authority control}}
Category:Domain-specific programming languages
Category:Simulation programming languages
Category:Complex systems theory