DYNAMO (programming language)
DYNAMO was a simulation language
Simulation language
A computer simulation language describes the operation of a simulation on a computer. There are two major types of simulation: continuous and discrete event though more modern languages can handle combinations. Most languages also have a graphical interface and at least simple statistical gathering...

 and accompanying graphical notation developed within the system dynamics
System dynamics
System dynamics is an approach to understanding the behaviour of complex systems over time. It deals with internal feedback loops and time delays that affect the behaviour of the entire system. What makes using system dynamics different from other approaches to studying complex systems is the use...

 analytical framework. It was originally for industrial dynamics but was soon extended to other applications, including population and resource studies
and urban planning.

DYNAMO was initially developed under the direction of Jay Wright Forrester
Jay Wright Forrester
Jay Wright Forrester is a pioneer American computer engineer, systems scientist and was a professor at the MIT Sloan School of Management. Forrester is known as the founder of System Dynamics, which deals with the simulation of interactions between objects in dynamic systems.- Biography :Forrester...

 in the late 1950s, by Dr. Phyllis Fox
Phyllis Fox
Phyllis Fox is an American mathematician and computer scientist.She was part of the team that wrote DYNAMO for Jay Forrester's system dynamics research group...

Alexander L. Pugh III, Grace Duren,
and others
at the M.I.T. Computation Center
M.I.T. Computation Center
-History of the M.I.T. Computation Center:The M.I.T. Computation Center, organized in 1956, housed an IBM 704 up until 1960.-The M.I.T. Computation Center and Operation Moonwatch:...

The earliest versions were written in assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

 for the IBM 704
IBM 704
The IBM 704, the first mass-produced computer with floating point arithmetic hardware, was introduced by IBM in 1954. The 704 was significantly improved over the IBM 701 in terms of architecture as well as implementations which were not compatible with its predecessor.Changes from the 701 included...

, then for the IBM 709
IBM 709
The IBM 709 was an early computer system introduced by IBM in August, 1958. It was an improved version of the IBM 704 and the second member of the IBM 700/7000 series of scientific computers....

 and IBM 7090
IBM 7090
The IBM 7090 was a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computers and was designed for "large-scale scientific and technological applications". The 7090 was the third member of the IBM 700/7000 series scientific computers. The first 7090 installation...

. DYNAMO II was written in AED-0, an extended version of Algol 60
ALGOL 60 is a member of the ALGOL family of computer programming languages. It gave rise to many other programming languages, including BCPL, B, Pascal, Simula, C, and many others. ALGOL 58 introduced code blocks and the begin and end pairs for delimiting them...

Dynamo II/F, in 1971, generated portable FORTRAN
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

and both Dynamo II/F and Dynamo III improved the system's portability by being written in FORTRAN.

DYNAMO was used for the system dynamics
System dynamics
System dynamics is an approach to understanding the behaviour of complex systems over time. It deals with internal feedback loops and time delays that affect the behaviour of the entire system. What makes using system dynamics different from other approaches to studying complex systems is the use...

 simulations of global resource-depletion reported in the Club of Rome
Club of Rome
The Club of Rome is a global think tank that deals with a variety of international political issues. Founded in 1968 at Accademia dei Lincei in Rome, Italy, the CoR describes itself as "a group of world citizens, sharing a common concern for the future of humanity." It consists of current and...

's Limits to Growth
Limits to Growth
The Limits to Growth is a 1972 book modeling the consequences of a rapidly growing world population and finite resource supplies, commissioned by the Club of Rome. Its authors were Donella H. Meadows, Dennis L. Meadows, Jørgen Randers, and William W. Behrens III. The book used the World3 model to...

Originally designed for batch processing
Batch processing
Batch processing is execution of a series of programs on a computer without manual intervention.Batch jobs are set up so they can be run to completion without manual intervention, so all input data is preselected through scripts or command-line parameters...

 on mainframe computers, it was made available on minicomputers in the late 1970s,
and became available as "micro-Dynamo" on personal computers in the early 1980s.
The language went through several revisions from DYNAMO II up to DYNAMO IV in 1983, but has since fallen into disuse.


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
Harvard Business Review
Harvard Business Review is a general management magazine published since 1922 by Harvard Business School Publishing, owned by the Harvard Business School. A monthly research-based magazine written for business practitioners, it claims a high ranking business readership among academics, executives,...

 paper he was writing about industrial dynamics.
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
    Line printer
    The line printer is a form of high speed impact printer in which one line of type is printed at a time. They are mostly associated with the early days of computing, but the technology is still in use...

     and pen plotter graphics.

Among the ways in which DYNAMO was above the standard of the time, it featured units checking
Dimensional analysis
In physics and all science, dimensional analysis is a tool to find or check relations among physical quantities by using their dimensions. The dimension of a physical quantity is the combination of the basic physical dimensions which describe it; for example, speed has the dimension length per...

 of numerical types and relatively clear error messages.

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. It has been said by some to have opened opportunities for computer modelling even for users of relatively low mathematical sophistication. On the other hand, it has also been criticized as weak precisely where mathematical sophistication should be required and for relying only on Euler integration
Euler integration
In mathematics and computational science, the Euler method, named after Leonhard Euler, is a first-order numerical procedure for solving ordinary differential equations with a given initial value...


External links

  • DYNAMO - excerpt from manual contains much more detailed history.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.