Published: 2008-07-02
ISBN: 978-91-7519-823-1
ISSN: 1650-3686 (print), 1650-3740 (online)
Current equation-based object-oriented (EOO) languages typically contain a number of fairly complex language constructs for enabling reuse of models. However; support for model transformation is still often limited to scripting solutions provided by tool implementations. In this paper we investigate the possibility of combining the well known concept of higher-order functions; used in standard functional programming languages; with acausal models. This concept; called Higher-Order Acausal Models (HOAMs); simplifies the creation of reusable model libraries and model transformations within the modeling language itself. These transformations include general model composition and recursion operations and do not require data representation/ reification of models as in metaprogramming/metamodeling. Examples within the electrical and mechanical domain are given using a small research language. However; the language concept is not limited to a particular language; and could in the future be incorporated into existing commercially available EOO-languages.
Higher-Order;Acausal;Modeling; Simulation; Model Transformation; Equations; Object-Oriented; EOO
[1] Mats Andersson. Object-Oriented Modeling and Simulation of Hybrid Systems. PhD thesis; Department of Automatic Control; Lund Institute of Technology; Sweden; December 1994.
[2] Peter Aronsson; Peter Fritzson; Levon Saldamli; Peter Bunus; and Kaj Nyström. Meta Programming and Function Overloading in OpenModelica. In Proceedings of the 3rd International Modelica Conference; pages 431–440; Linköping; Sweden; 2003.
[3] Paul Inigo Barton. The Modelling and Simulation of Combined Discrete/Continuous Processes. PhD thesis; Department of Chemical Engineering; Imperial Collage of Science; Technology and Medicine; London; UK; 1992.
[4] David Broman. Flow Lambda Calculus for Declarative Physical Connection Semantics. Technical Reports in Computer and Information Science No. 1; LIU Electronic Press; 2007.
[5] Ernst Christen and Kenneth Bakalar. VHDL-AMS - A Hardware Description Language for Analog and Mixed- Signal Applications. IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing; 46(10):1263–1272; 1999.
[6] Ole-Johan Dahl and Kristen Nygaard. SIMULA: an ALGOL-based simulation language. Communications of the ACM; 9(9):671–678; 1966.
[7] Dynasim. Dymola - Dynamic Modeling Laboratory (Dynasim AB). http://www.dynasim.se/ [Last accessed: April 30; 2008].
[8] Christoph Nytsch-Geusen et. al. MOSILAB: Development of a Modelica based generic simulation tool supporting model structural dynamics. In Proceedings of the 4th International Modelica Conference; Hamburg; Germany; 2005.
[9] Rüdiger Franke; Manfred Rode; and Klaus Krüger. On-line Optimization of Drum Boiler Startup. In Proceedings of the 3rd International Modelica Conference; pages 287–296; Linköping; Sweden; 2003.
[10] Peter Fritzson. Principles of Object-Oriented Modeling and Simulation with Modelica 2.1. Wiley-IEEE Press; New York; USA; 2004.
[11] Peter Fritzson; Peter Aronsson; Adrian Pop; Håkan Lundvall; Kaj Nyström; Levon Saldamli; David Broman; and Anders Sandholm.OpenModelica - A Free Open-Source Environment for System Modeling; Simulation; and Teaching. In IEEE International Symposium on Computer-Aided Control Systems Design; Munich; Germany; 2006.
[12] Peter Fritzson; Adrian Pop; and Peter Aronsson. Towards Comprehensive Meta-Modeling and Meta-Programming Capabilities in Modelica. In Proceedings of the 4th International Modelica Conference; pages 519–525; 2005.
[13] Georgina Fábián. A Language and Simulator for Hybrid Systems. PhD thesis; Institute for Programming research and Algorithmics; Technische Universiteit Eindhoven; Netherlands; Netherlands; 1999.
[14] Johan Åkesson. Languages and Tools for Optimization of Large-Scale Systems. PhD thesis; Department of Automatic Control; Lund Institute of Technology; Sweden; November 2007.
[15] MathWorks. The Mathworks - Simulink - Simulation and Model-Based Design. http://www.mathworks. com/products/simulink/ [Last accessed: November 8; 2007].
[16] Robin Milner; Mads Tofte; Robert Harper; and David MacQuee. The Definition of Standard ML - Revised. The MIT Press; 1997.
[17] Modelica Association. Modelica - A Unified Object- Oriented Language for Physical Systems Modeling - Language Specification Version 3.0; 2007. Available from: http://www.modelica.org.
[18] Henrik Nilsson; John Peterson; and Paul Hudak. Functional Hybrid Modeling. In Practical Aspects of Declarative Languages : 5th International Symposium; PADL 2003; volume 2562 of LNCS; pages 376–390; New Orleans; Lousiana; USA; January 2003. Springer-Verlag.
[19] Henrik Nilsson; John Peterson; and Paul Hudak. Functional Hybrid Modeling from an Object-Oriented Perspective. In Proceedings of the 1st International Workshop on Equation- Based Object-Oriented Languages and Tools; pages 71–87; Berlin; Germany; 2007. Linköping University Electronic Press.
[20] M. Oh and Costas C. Pantelides. A modelling and Simulation Language for Combined Lumped and Distributed Parameter Systems. Computers and Chemical Engineering; 20(6–7):611–633; 1996.
[21] Tim Sheard. Accomplishments and research challenges in meta-programming. In Proceedings of the Workshop on Semantics; Applications; and Implementation of Program Generation; volume 2196 of LNCS; pages 2–44. Springer- Verlag; 2001.
[22] Tim Sheard and Simon Peyton Jones. Template metaprogramming for Haskell. In Haskell ’02: Proceedings of the 2002 ACM SIGPLAN workshop on Haskell; pages 1–16; New York; USA; 2002. ACM Press.
[23] Simon Peyton Jones. Haskell 98 Language and Libraries – The Revised Report. Cambridge University Press; 2003.
[24] Bjarne Stroustrup. A history of C++ 1979–1991. In HOPLII: The second ACM SIGPLAN conference on History of programming languages; pages 271–297; New York; USA; 1993. ACM Press.
[25] Walid Taha and Tim Sheard. MetaML and multi-stage programming with explicit annotations. Theoretical Computer Science; 248(1–2):211–242; 2000.
[26] The OpenModelica Project. www.openmodelica.org [Last accessed: May 8; 2008].
[27] D.A. van Beek; K.L. Man; MA. Reniers; J.e. Rooda; and R.R.H Schiffelers. Syntax and consistent equation semantics of hybrid Chi. The Journal of Logic and Algebraic Programming; 68:129–210; 2006.
[28] Zhanyong Wan and Paul Hudak. Functional reactive programming from first principles. In PLDI ’00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation; pages 242–252; New York; USA; 2000. ACM Press.
[29] Dirk Zimmer. Enhancing Modelica towards variable structure systems. In Proceedings of the 1st International Workshop on Equation-Based Object-Oriented Languages and Tools; pages 61–70; Berlin; Germany; 2007. Linköping University Electronic Press.