Please use this identifier to cite or link to this item: http://dx.doi.org/10.14279/depositonce-8354
Main Title: Compiling Modelica
Subtitle: about the separate translation of models from Modelica to OCaml and its impact on variable-structure modeling
Translated Title: Modelica Übersetzen
Translated Subtitle: über die separate Übersetzung von Modellen aus Modelica nach OCaml und ihre Auswirkung auf die Modellierung mit Strukturdynamik
Author(s): Höger, Christoph
Advisor(s): Pepper, Peter
Referee(s): Pepper, Peter
Jähnichen, Stefan
Broman, David
Granting Institution: Technische Universität Berlin
Type: Doctoral Thesis
Language Code: en
Abstract: The equation-based object-oriented modeling language Modelica is an openly accessible standard with many implementations and applications. Most, if not all, tools that execute a Modelica simulation follow a common scheme: Models are loaded, composed, analyzed, and transformed into a system of equations. This system is then further simplified, translated into efficient code, and simulated. The latter steps are executed by the tool at hand and not specified by the modeling language's semantics. This architecture has profound impact on the relationship between models and their simulation. After the simulation code has been generated, a model cannot change its structure, i.e. its equations, during simulation. This thesis investigates an alternative approach: Here, each model is considered separately and has an intrinsic context-independent meaning. In this view, simulation is not a tool-specific step, disconnected from the language semantics but expressed in the modeling language itself and each model can be translated separately into executable code. Consequently, a model can then control the course of the simulation, enabling a powerful variant of variable-structure systems. The translation of models builds upon a partial but rigorous definition of the modeling language's semantics in the form of a core language, MCL. The core language focuses on the most important aspects of Modelica: the organization of models in hierarchies and their reduction to systems of equations. The formalization of the reduction in a continuation-passing style permits the definition of variable-structure models. The compiler, although only a prototype, is capable of translating several important features of Modelica. As an extension to the language, it has a straightforward support for variable-structure systems with many modes. With the help of first-class models it becomes possible to implement the symbolical and numerical treatment of models in MCL itself. A kernel library provides the means for the description of equations, discrete signals, symbolic manipulation, and simulation. This architecture reduces the complexity of the modeling language to a manageable magnitude and also makes it rather simple to extend or change the features of that library.
Die gleichungsbasierte, objektorientierte Modellierungssprache Modelica ist standardisiert und hat viele verschiedene Anwendungsgebiete und Implementierungen. Die meisten dieser Implementierungen folgen einem gemeinsamen Schema: Modelle werden erst kombiniert, dann zu einem Gleichungssystem reduziert, analysiert und schließlich in effizienten Simulationscode übersetzt. Analyse und Übersetzung sind nicht Teil der Sprachspezifikation. Die Details ihrer Umsetzung sind der Implementierung überlassen. Dieser Ablauf hat einen Entscheidenden Einfluss auf die Beziehung zwischen Modellen und ihrer Simulation. Nach der Erzeugung des Simulationscodes kann ein Modell seine Struktur, d.h. seine Gleichungen, nicht mehr ändern. Diese Dissertation untersucht einen alternativen Ansatz, in dem jedes Modell getrennt betrachtet wird und so eine intrinsische, kontext-unabhängige Bedeutung hat. Aus dieser Perspektive ist die Simulation kein von der Modellierungssprache unabhängiger Schritt, sondern wird in dieser selbst ausgedrückt. So kann jedes Modell separat in Maschinencode übersetzt werden. Daraus folgt die Möglichkeit, den Simulationsverlauf aus den Modellen heraus zu steuern und eine mächtige Variante strukturdynamischer Systeme zu implementieren. Die Übersetzung von Modellen beruht auf einer rigorosen Definition einzelner Aspekte der Semantik von Modelica in Form einer Kernsprache, MCL. Diese Kernsprache konzentriert sich auf die wesentlichsten Aspekte von Modelica: Die hierarchische Organisation von Modellen und ihre Reduktion zu Gleichungssystemen. Die Formalisierung der Reduktion erfolgt mit Continuations und ermöglicht so die Implementierung von Strukturdynamik. Der so implementierte Compiler kann mit vielen Sprachmittel von Modelica umgehen. Darüberhinaus unterstützt er eine unkomplizierte Form zur Modellierung strukturdynamischer Systeme mit vielen Modi. Weil Modelle in MCL Objekte erster Klasse sind, kann ihre symbolische und numerische Verarbeitung in der Sprache selbst implementiert werden. Eine Kernel Bibliothek stellt die Mittel zur Erzeugung, Transformation und Simulation von kontinuierlichen Gleichungen diskreten Signalen bereit. Dieser Ansatz reduziert die Komplexität der Sprachsemantik erheblich und erleichtert die Änderung oder Erweiterung der Algorithmen die Modelle verarbeiten.
URI: https://depositonce.tu-berlin.de/handle/11303/9277
http://dx.doi.org/10.14279/depositonce-8354
Exam Date: 7-May-2018
Issue Date: 2019
Date Available: 7-May-2019
DDC Class: 005 Computerprogrammierung, Programme, Daten
Subject(s): Modelica
separate compilation
correct translation
semantics
variable-structure modeling
separate Kompilierung
korrekte Übersetzung
Semantik
Strukturdynamik
License: https://creativecommons.org/licenses/by-sa/4.0/
Appears in Collections:FG Übersetzerbau und Programmiersprachen » Publications

Files in This Item:
File Description SizeFormat 
hoeger_christoph.pdf2.26 MBAdobe PDFThumbnail
View/Open


This item is licensed under a Creative Commons License Creative Commons