MetaModelica: a unified equation-based semantical and mathematical modeling language

  • Authors:
  • Adrian Pop;Peter Fritzson

  • Affiliations:
  • Programming Environment Laboratory, Department of Computer and Information Science, Linköping University, Linköping, Sweden;Programming Environment Laboratory, Department of Computer and Information Science, Linköping University, Linköping, Sweden

  • Venue:
  • JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

For a long time, one of the major research goals in the computer science research community has been to raise the level of abstraction power of specification languages/programming languages. Many specification languages and formalisms have been invented, but unfortunately very few of those are practically useful, due to limited computer support of these languages and/or inefficient implementations. Thus, one important goal is executable specification languages of high abstraction power and with high performance, good enough for practical usage and comparable in execution speed to hand implementations of applications in low-level languages such as C or C++. In this paper we briefly describe our work in creating efficient executable specification languages for two application domains. The first area is formal specification of programming language semantics, whereas the second is formal specification of complex systems for which we have developed an object-oriented mathematical modeling language called Modelica, including architectural support for components and connectors. Based on these efforts, we are currently working on a unified equation-based mathematical modeling language that can handle modeling of items as diverse as programming languages, computer algebra, event-driven systems, and continuous-time physical systems. The key unifying feature is the notion of equation. In this paper we describe the design and implementation of the unified language. A compiler implementation is already up and running, and used for substantial applications.