Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Systemanalyse

Übersichtsseite

Inhaltsverzeichnis


Metamodellierung

Schwerpunkt unserer aktuellen Forschung am Lehrstuhl bilden Fragestellungen, die auf den Einsatz der Metamodellierung für eine modellbasierte Software-Entwicklung ausgerichtet sind. Hintergrund dafür ist die Erkenntnis, dass nicht nur ein Programm oder Modell eine Ausprägung seiner Sprache ist, sondern diese Sprache wiederum eine Ausprägung einer noch abstrakteren Sprache ist. Damit erscheinen auf der Basis identifizierter Gemeinsamkeiten von Sprachen metamodellbasierte Ansätze zur Durchführung vielfältig benötigter Modelltransformationen in einem modellbasierten Software-Entwicklungsprozess als vielversprechende Alternativen zu herkömmlichen rein grammatikbasierten Compilern. Wir untersuchen in diesem Zusammenhang eine Reihe grundsätzlicher Fragestellungen in Kombination mit der begleitenden Entwicklung von Prototypwerkzeugen am Beispiel eines metamodellbasierten SDL-Compilers.

Für interessierte Kooperationspartner stehen


SAFER

Das EU-Projekt "Seismic eArly warning For EuRope" (SAFER) verfolgt das Ziel, die Qualität der Erdbebenfrühwarnung zu verbessern. Ein wichtiger Aspekt ist dabei, die Zeit zwischen dem Auftreten des Erdbebenereignisses und der Alarm-Benachrichtigung zu minimieren. Dafür werden Methoden und Technologien für eine zuverlässige Erkennung und einen fehlertolleranten Transport der Informationen entwickelt. Vielfache interdisziplinäre Aspekte werden von internationalen Partnern erforscht und stellen besondere Herausforderungen an die Informatik.

Liste begleitender Publikationen


Kimwitu++

Der Termprozessor kimwitu eignet sich, um über komplexen Baumstrukturen Operationen durchzuführen. Die Knoten der Bäume sind typisiert; die Typen bestimmen die Anzahl und die möglichen Typen der Teilbäume. kimwitu wird extensiv bei der Erstellung der Syntaxbäume in den SITE-Tools eingesetzt. Diese Syntaxbäume stammen oft aus einem mit bison erzeugten Parser, die Operationen enthalten Semantiküberprüfungen oder Codegenerierungsaktionen. Die Quellsprache von kimwitu besteht aus der Beschreibung der statischen Syntax in yacc-ähnlicher Art und Weise und aus Bearbeitungsregeln, die mit Programmteilen in C durchsetzt sind; zudem gibt es zusätzliche Schlüsselwörter als Erweiterung für C. Daraus wird dann C-Code erzeugt.

Als Zielsprache für diese Transformation bietet sich aber vielmehr C++ an. Im Rahmen des SITE-Projekts wurde und wird daher eine C++-Variante entwickelt. Dies erlaubt eine bessere Strukturierung unserer Kimwitu-Programme und erleichtert auch die Pflege von Kimwitu++ selbst. Die Homepage von Kimwitu++ (http://www.informatik.hu-berlin.de/sam/kimwitu++/)


SITE

Das Kerngerüst von SITE (SDL Integrated Tool Environment) wurde im Rahmen eines studentischen Projektes 1993 bis 1995 entwickelt, wobei Tool-Komponenten in den Folgejahren in verschiedenen Drittmittelprojekten verbessert und ausgebaut wurden. Die Leistungsmerkmale von SITE beziehen sich auf vier Schwerpunktbereiche:

  • die syntaktische und semantische Analyse,
  • die C++-Codegenerierung,
  • die Java-Codegenerierung, und
  • der Simulator.

SITE unterstützt dabei SDL- und ASN.1-Datentypen, wobei ein Präprozessor die Verarbeitung von Z.105-standardkonformen Datentypspezifikationen übernimmt. Insgesamt wird gegenwärtig der Sprachstandard von 1996 unterstützt. Darüber hinaus sind bereits jetzt neue Konzepte (wie Exception Handling und Nested Packages) als Erweiterungen des Sprachstandard SDL-2000 implementiert. Details zu SITE finden sie auf der Homepage von SITE (http://www.informatik.hu-berlin.de/SITE/).

Im Rahmen von SITE wurden und werden u.a. folgende SITE-Teilprojekte realisiert.


SimRing

Bei SimRing handelt es sich um ein Simulationssystem für die Vergüterei des Ringwalzwerks der [Schmiedewerke Gröditz GmbH (http://www.stahl-groeditz.de)]. Dieses Simulationssystem besteht aus einem Simulator und einem Animator und ist ihm Rahmen mehrerer Drittmittelprojekte entstanden. Dabei ist die zu bewältigende Aufgabenstellung seit dem ersten Projekt Anfang 2001 kontinuierlich gewachsen.

Ursprünglich wurde der Lehrstuhl mit der Simulation der logistischen Abläufe in der bestehenden Vergüterei inklusive verschiedener Modifikationen beauftragt. Im Laufe der Zeit wurde die "echte" Vergüterei (unter anderem als Folge der durchgeführten Simulationen) mehrfach weiterentwickelt, so dass zum einen die virtuelle Vergüterei immer wieder an die reale angepasst werden musste und zum anderen neue Modifikationen möglich wurden.

Des weiteren ist der zu simulierende Teil der Vergüterei ständig gewachsen. Wurde am Anfang nur der innerste Kern der Vergüterei simuliert, so beinhaltet die aktuelle Simulation auch Teile der Ringproduktion (vor der Vergüterei) und der Härteprüfung (nach der Vergüterei).

Für den Lehrstuhl hat sich SimRing auch abseits des Vertrags mit dem Auftraggeber gelohnt. So konnte ein Teil der Simulation als dankbares Beispiel in der Lehre verwendet werden. Außerdem wurden in dem Projekt verschiedene Techniken erstmalig benutzt, die seitdem auch in anderen Projekten wiederverwendet werden konnten.

Aktuell ist das SimRing-Projekt Teil zweier Studienarbeiten, in denen es darum geht, die existierende Simulation zu Vergleichszwecken von der benutzten Simulationsbibliothek ODEM auf den Nachfolger ODEMx bzw. die Simulationsbibliothek DesmoJ zu portieren.


Softwarekomponenten-Entwicklung

etoc ist ein Projekt, welches aus der laufenden Dissertation von Harald Böhme entstanden ist. Mit etoc können eODL-Modelle zu CIDL-Modellen transformiert werden.

Homepage von etoc

 

<Harald, Frank, Tom, Joachim Dorn, Alexander Auerbach, Nicolas Michael>


ODEMx

Vorerst: Siehe   ODEMx-Seite auf SourceForge (http://sourceforge.net/projects/odemx).

<Ralph, Ingmar, Chris>


Minako

Bei Minako (Multiple Implementations of a nearly academic compiler) handelt es sich um eine Sammlung von gegenwärtig 14 äquivalenten Compilern. Die einzelnen Compiler wurden zwar unter Zuhilfenahme verschiedener Compilergeneratoren und Programmiersprachen implementiert, erfüllen aber alle dieselbe Kompilationsaufgabe.

Begonnen hat das Projekt als Lehrcompiler für das Compilerbaupraktikum der Praktischen Informatik III. Dementsprechend wurde eine einfache Quellsprache (C0, eine selbst definierte Teilsprache von C) definiert und eine leicht vermittelbare Zielsprache (Jasmin, der Quasi-Assemblerstandard für die Java Virtual Machine) gewählt.

Zwei Referenzimplementationen wurden im Frühjahr 2003 mittels der Parsergeneratoren (javacc und bison) vorgenommen. Es folgten zwei weitere Implementationen mit Hilfe der Werkzeuge (jjtree und kimwitu++), die im Gegensatz zu den Referenzcompilern als Mehrpasscompiler konstruiert wurden. Im Sommersemester 2004 wurde die Sammlung im Rahmen des Seminars "Codegeneratoren" um mehrere Compiler erweitert.

Ziel des Projektes ist eine möglichst umfangreiche Sammlung von Compilern, die sowohl zur Bereicherung der Lehre als auch als Nachschlagewerk bei der Benutzung von Compilergeneratoren benutzt werden kann. So konnte das im Minako-Projekt gewonnene Wissen schon in anderen Projekten des Lehrstuhls wiederverwendet werden.

Im Wintersemester 2003/2004 wurde das erste Mal ein Compiler aus dem Minako-Projekt erfolgreich als Praktikumscompiler in der Lehre eingesetzt. Ausgehend von den durchweg positiven Erfahrungen wurde auch im folgenden Wintersemester (2004/2005) wieder auf Minako zurückgegriffen. Des Weiteren ist Minako nach wie vor zentraler Bestandteil des bereits erwähnten, jährlich stattfindenden Seminars "Codegeneratoren".