Conference article

A Static Aspect Language for Modelica Models

Malte Lochau
Institute for Programming and Reactive Systems, TU Braunschweig, Germany

Henning Günther
Institute for Programming and Reactive Systems, TU Braunschweig, Germany

Download article

Published in: Proceedings of the 2nd International Workshop on Equation-Based Object-Oriented Languages and Tools

Linköping Electronic Conference Proceedings 101:6, p. 47-57

Show more +

Published: 2008-07-02

ISBN: 978-91-7519-823-1

ISSN: 1650-3686 (print), 1650-3740 (online)

Abstract

With the introduction of the new Modelica major version 3; innovations mainly consist of further model restrictions for increased model quality. In addition; developers often want to ensure the compliance to further requirements early in the development cycle. Mostly emerging as domain specific conventions that often crosscut model structures; according checking mechanisms are required that are detached from the core language. In this paper; a declarative language is presented for specifying and evaluating quantified rules for static model properties. Based on aspectoriented programming; the language allows for concise and expressive model inspections and a variable and typing concept facilitate subsequent model manipulations. A nascent implementation framework is proposed; based on the logic meta programming paradigm; thus leading to efficient and scalable aspect processing applicable as model query engine for an AOP Modelica Compiler.

Keywords

Early Checking; Aspect Orientation; Modelica Model Inspection

References

[1] Johan Akesson. Languages and Tools for Optimization of Large-Scale Systems. PhD thesis; Department of Automatic Control; Lund Institute of Technology; Sweden; November 2007.

[2] The Modelica Association. The Modelica Language Specification 3.0. http://www.modelica.org; September 2007. http://www.modelica.org.

[3] Franz Baader; Diego Calvanese; Deborah L. McGuiness; Daniele Nardi; and Peter F. Patel-Schneider. The Description Logic Handbook: Theory; Implementation; and Applications. Cambridge University Press; 2003.

[4] Alexander Borgida. Description Logics in Data Management. In IEEE Transactions on Knowledge and Data Engineering; volume 7; pages 671–682; 1995.

[5] David Broman; Kaj Nyström; and Peter Fritzson. Determining Over- and Under-Constrained Systems of Equations using Structural Constraint Delta. In Proceedings of the Fifth International Conference on Generative Programming and Component Engineering (GPCE’06); pages 151–160; Portland; Oregon; USA; 2006. ACM Press.

[6] Peter Bunus and Peter Fritzson. Automated Static Analysis of Equation-Based Components. SIMULATION; 80(7- 8):321–345; July-August 2004.

[7] Tal Cohen; Joseph Gil; and Italy Maman. JTL - The Java Tools Language. In OOPSLA’06: Companion to the 20th annual ACM SIGPLAN Conference on Object-Oriented Programming; Systems; Languages; and Applications; 2006 [8] Roger F. Crew. ASTLOG: A Language for Examinging Abstract Syntax Trees. In Proceedings of the USENIX Conference on Domain-Specific Languages; pages 229– 242; 1997.

[9] P. Deransart; A. Ed-Dbali; and L. Ceravoni. Prolog: The Standard. Springer-Verlag; NewYork; 1996.

[10] R. Filman and D. Friedman. Aspect-Oriented Programming is Quantification and Obliviousness; 2000.

[11] P. Fritzson; P. Aronsson; A. Pop; H. Lundvall; K. Nystrom; L. Saldamli; D. Broman; and A. Sandholm. OpenModelica - A Free Open-Source Environment for System Modeling; Simulation; and Teaching. In IEEE International Symposium on Computer-Aided Control Systems Design; pages 1588–1595; October 2006.

[12] Peter Fritzson. Principles of Object-Oriented Modeling and Simulation with Modelica 2.1. IEEE Press; 2004.

[13] J. Järvi; J. Willcock; and A. Lumsdaine. Associated Types and Constrain Propagation for Mainstream Object-Oriented Generics. In Proceedings of the 20th OOPSLA; pages 327– 355. Springer Verlag; June 2001.

[14] Gregor Kiczales; Erik Hilsdale; Jim Hugunin; Mik Kersten; Jeffrey Palm; and William G. Griswold. An Overview of AspectJ. Lecture Notes in Computer Science; 2027:327– 355; 2001.

[15] Gregor Kiczales; John Lamping; Anurag Mendhekar; Chris Maeda; Cristina Videira Lopes; Jean-Marc Loingtier; and John Irwin. Aspect-Oriented Programming. In Proceedings of the European Conference on Object- Oriented Programming (ECOOP); Finland. Springer- Verlag; June 1997.

[16] Clint Morgan; Kris De Volder; and Eric Wohlstadter. A Static Aspect Language for Checking Design Rules. In AOSD ’07: Proceedings of the 6th International Conference on Aspect-Oriented Software Development; pages 63–72; New York; NY; USA; 2007. ACM.

[17] Hans Olsson; Martin Otter; Sven Erik Mattsson; and Hilding Elmqvist. Balanced Models in Modelica 3.0 for Increased Model Quality. In Prof. Dr. B. Bachmann; editor; Proceedings of the 6th International Modelica nConference; volume 1; University of Applied Sciences Germany; Bielefeld; 2008. The Modelica Association.

[18] Terence Parr. The Definitive ANTLR Reference Guide: Building Domain-specific Languages. Pragmatic Programmers; 2007.

[19] Adrian Pop and Peter Fritzson. Debugging Natural Semantics Specifications. In AADEBUG’05: Proceedings of the sixth international symposium on Automated analysisdriven debugging; pages 77–82; New York; NY; USA; 2005. ACM.

[20] Adrian Pop and Peter Fritzson. MetaModelica: A Unified Equation-Based Semantical and Mathematical Modeling Language. In Joint Modular Languages Conference (JMLC2006); Jesus College; Oxford; England; September 2006.

[21] Michael Tiller. Introduction to Physical Modeling with Modelica. Kluwer Academic Publishers; 2001.

[22] Michael Tiller. Parsing and Semantics Analysis of Modelica Code for Non-Simulation Applications. In Peter Fritzson; editor; Proceedings of the 3rd International Modelica Conference; volume 1; pages 411–418; Linköping; November 2003.

[23] Kris De Volder and Theo D’Hondt. Aspect-Oriented Logic Meta Programming. In Reflection ’99: Proceedings of the Second International Conference on Meta-Level Architectures and Reflection; pages 250–272; London; UK; 1999. Springer-Verlag.

Citations in Crossref