FrontWay PaperFront to OpenModelica Translator
Independent thesis Advanced level (degree of Master (Two Years)), 30 credits / 45 HE creditsStudent thesis
Many companies in the domain of modeling and simulation are showing interest in the new emerging OpenModelica, an object oriented modeling and simulation platform based on Modelica language.
The purpose of this thesis is to study if and how simulation libraries written in ExtendSim such as PaperFront, can be semi-automatically converted to equivalent Modelica libraries. The ExtendSim tool is based upon a C like language called ModL that is used for designing models. A prototype translator is developed for translating ModL to Modelica. One difficulty that had to be overcome was the fact that ExtendSim is a commercial tool which hides part of its model information in a binary format. The generated code from prototype translator can be viewed using any text editor or using the textual view of Modelica graphical editors such as OMEdit or Dymola.
The implementation of the prototype translator is done using the Java based ANTLR tool, which generates a parser and a lexer from the defined grammar rules. Moreover, a set of templates is written using the StringTemplate language for the code generation. The prototype translator takes ModL code of an ExtendSim library file and generates an Abstract Syntax Tree (AST), which is then converted to an equivalent Modelica AST. This Modelica AST is later converted to textual Modelica code. Subject to limited resource availability and time constraints of the thesis work, the basic constructs of ModL language are supported by the translator e.g. data types, if-else statements, loops, procedures etc. The enhancements in the translator can be made in the future by adding support for remaining language features such as support for tracing and additional ModL built-in functions etc.
Place, publisher, year, edition, pages
2011. , 70 p.
OpenModelica, ExtendSim, Translator, ANTLR, AST, StringTemplate, Parser
IdentifiersURN: urn:nbn:se:liu:diva-72085ISRN: LIU-IDA/LITH-EX-A--11/040--SEOAI: oai:DiVA.org:liu-72085DiVA: diva2:456828
Subject / course
Computer and information science at the Institute of Technology