DYNAMO (linguaggio di programmazione)

linguaggio di programmazione

DYNAMO ( DYNAmic MOdels ) è un linguaggio di simulazione (dotato di notazione grafica di accompagnamento) che risulta storicamente importante nell'ambito della dinamica dei sistemi. In origine era destinato alla pianificazione industriale, ma ben presto fu impiegato in altri settori, come ad esempio gli studi sul rapporto tra popolazione e risorse[1][2] o gli studi sulla pianificazione urbana[3][4].

Inizialmente DYNAMO fu sviluppato presso il MIT Computation Center[5] alla fine degli anni '50, da Phyllis Fox[6][7] Alexander L. Pugh III, Grace Duren[8] e altri[9], sotto la direzione di Jay Wright Forrester.

DYNAMO è stato utilizzato per simulare la dinamica dei sistemi relativi all'esaurimento delle risorse globali trattati nel Limits to Growth del Club di Roma[1]; tuttavia, da allora è caduto in disuso.

Inizi modifica

Nel 1958 Forrester fu la causa involontaria dello sviluppo di DYNAMO, quando chiese a un programmatore del personale del MIT di calcolare le soluzioni di alcune equazioni necessarie ad un articolo che stava scrivendo per la Harvard Business Review riguardante le dinamiche industriali[10][11]. Il programmatore, Richard Bennett, scelse di implementare un sistema (SIMPLE, acronimo che sta per "Simulation of Industrial Management Problems with Lots of Equations", cioè "Simulazione di problemi di gestione industriale con molte equazioni") che prendeva come input le equazioni codificate simbolicamente e quindi calcolava le soluzioni. SIMPLE divenne il prototipo per DYNAMO: invece di avere un programmatore di livello avanzato che scrive un risolutore ad hoc in un linguaggio di programmazione generalista, gli utenti possono specificare le equazioni del sistema in un linguaggio di simulazione dedicato e quindi ottenere direttamente i risultati della simulazione.

Obiettivi di progettazione modifica

DYNAMO è stato progettato enfatizzando:

  • la facilità d'uso per la comunità della modellistica della dinamica industriale (che non si riteneva composta da programmatori esperti)
  • l'esecuzione immediata del modello sviluppato, senza produrre un file oggetto intermedio
  • l'output grafico, per stampanti di linea e plotter.

Tra le caratteristiche nelle quali DYNAMO era superiore allo standard del tempo, c'erano il supporto per l'analisi dimensionale dei tipi numerici e messaggi di errore relativamente chiari.

Implementazione modifica

Le prime versioni di DYNAMO sono state scritte in linguaggio assembly (per IBM 704, IBM 709 e IBM 7090). DYNAMO II è stato scritto in AED-0, una versione estesa di Algol 60[12][13]. DYNAMO II / F (1971) è stato scritto in FORTRAN[14] e poteva generare codice FORTRAN; anche DYNAMO III è stato scritto in FORTRAN; l'utilizzo di questo linguaggio ha migliorato la portabilità del sistema[15].

Originariamente progettato per l'elaborazione batch su computer mainframe, fu reso disponibile sui minicomputer alla fine degli anni '70[16] e divenne disponibile sui personal computer come "micro-Dynamo" nei primi anni '80[17]. Il linguaggio ha subito diverse revisioni da DYNAMO II fino a DYNAMO IV (1983)[18].

Impatto e problemi modifica

A parte il suo impatto pubblico (percepito in maniera indiretta) per le questioni ambientali sollevate dalla controversia sui limiti dello sviluppo, DYNAMO ha influenzato la storia della simulazione ad eventi discreti (però, si trattava sostanzialmente di un pacchetto per la simulazione a tempo continuo specificata attraverso equazioni alle differenze[19]). Alcuni hanno sostenuto che sia stata data l'opportunità di operare nel campo della modellazione al computer anche ad utenti con preparazione matematica relativamente modesta. D'altra parte, è stata proprio la mancanza di sofisticazione matematica a venire considerata una delle debolezze[2][20] (per esempio, il fatto di fare affidamento solo sull'integrazione di Eulero[3]).

Note modifica

  1. ^ a b Donella Meadows, Jørgen Randers e Dennis Meadows, The limits to growth: the 30-year update, Chelsea Green Pub., 2004, p. 285, ISBN 1-931498-51-2.
  2. ^ a b Peter J. Taylor, Unruly complexity: ecology, interpretation, engagement, University Of Chicago Press, 2005, ISBN 0-226-79036-3.
  3. ^ a b Nicholas Mark Karayanakis, Computer-assisted simulation of dynamic systems with block diagram languages, CRC Press, 24 June 1993, ISBN 0-8493-8971-2.
  4. ^ Carl V. Swanson e Waldmann Raymond J., A Simulation Model Of Economic Growth Dynamics, in Journal of the American Planning Association, vol. 36, n. 5, Routledge: Taylor & Francis Group, September 1970, pp. 314-322, DOI:10.1080/01944367008977327. URL consultato il 12 maggio 2010.
  5. ^ DYNAMO User's Manual, MIT Press, 1963, pp. 2-3.
  6. ^ Resume and brief autobiography for Phyllis Fox, for Wellesley College Class of 1944 Record Book, (PDF), su SIAM history website, January 1974.
  7. ^ Michael J. Radzicki e Robert A. Taylor, Origin of System Dynamics, in Introduction to System Dynamics: Version 1.0, U.S. Department of Energy Office of Policy and International Affairs. URL consultato il 17 settembre 2019 (archiviato dall'url originale il 20 giugno 2017).
  8. ^ Thomas (interviewer) Haigh, Phyllis Fox, su The History of Numerical Analysis and Scientific Computing - Oral Histories, SIAM. URL consultato il 12 May 2010.
  9. ^ D-Memos 0 - 499, su systemdynamics.org, System Dynamics Society. URL consultato il 17 settembre 2019 (archiviato dall'url originale il 23 ottobre 2017).
  10. ^ Forrester, J.W., Industrial Dynamics, Cambridge MA, MIT Press, 1961, ISBN 1-883823-36-6.
  11. ^ "The Beginning of System Dynamics," Jay W. Forrester (PDF), su sysdyn.clexchange.org. URL consultato l'8 maggio 2010 (archiviato dall'url originale il 14 aprile 2010).
  12. ^ http://dspace.mit.edu/bitstream/handle/1721.1/755/FR-0351-19563962.pdf.txt?sequence=2.
  13. ^ J.E. Sammet, Programming Languages: History and Fundamentals, Prentice Hall, Aug 1969, p. 651, ISBN 0-13-729988-5.
  14. ^  ? ?, ?, in Pittsburgh Conference on Modeling and Simulation, Instrument Society of America. Pittsburgh Section, 1975, p. 1270. URL consultato il 12 May 2010.
  15. ^ Computer & Control Abstracts, Volume 11, Institute of Electrical and Electronics Engineers, p.1591
  16. ^ 'Dynamo' Now on Minis, in Computerworld, 5 giugno 1978.
  17. ^ Nancy Roberts, Introduction to computer simulation: the system dynamics approach, Addison-Wesley, September 1982, ISBN 0-201-06414-6.
  18. ^ DYNAMO User's Manual, Sixth Edition, ISBN 0-262-66052-0
  19. ^ "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
  20. ^ "An interview with Phyllis A. Fox", SIAM website oral history, p.26

Bibliografia modifica

  • 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 [1]
  • 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

Collegamenti esterni modifica

Controllo di autoritàLCCN (ENsh85040323 · J9U (ENHE987007567968105171