Bootstrapping a Modelica Compiler aiming at Modelica 4
Martin Sjölund, Peter Fritzson, Adrian Pop · Linköping electronic conference proceedings · 2011
What does it mean to bootstrap a compiler, and why do it?This paper reports on the first bootstrapping (i.e., a compiler can compile itself) of a full-scale EOO (Equation-based Object-Oriented) modeling language such as Modelica.The Modelica language has been modeled/implemented in the OpenModelica compiler (OMC) using an extended version of Modelica called MetaModelica.OMC models the MetaModelica language and is now compiling itself with good performance.Benefits include a more extensible maintainable compiler, also making it easier to add functionality such as debugging support.This work is in line with the recently started Modelica 4 design effort which includes moving implementation of language features from the compiler to a Modelica Core library, allowing compilers to become smaller while increasing correctness and portability.A number of language constructs discussed for Modelica 4 are already supported in some form by the bootstrapped compiler.Future work includes adapting language constructs according to the Modelica 4 design effort and extracting and restructuring parts of the Modelica implementation from the OMC compiler to instead reside in a Modelica Core library, making the compiler smaller and more extensible.