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;article=006

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

Linköping Electronic Conference Proceedings 29:6, s. 47-57

Show more +

Published: 2008-07-02

ISBN: 978-91-7519-823-1

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


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.


Early Checking; Aspect Orientation; Modelica Model Inspection


[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.; September 2007.

[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