Найти тему

Funktionen von EProvide

EProvide (Eclipse Plugin for Prototyping Visual Interpreters and Debuggers) ist ein Plug-in für die Eclipse-Entwicklungsumgebung, mit dem Sie schnell Betriebssemantik für fachspezifische Sprachen basierend auf Eclipse-Modellierungstechnologien definieren können[13] (Eclipse Modeling Framework (EMF), Graphical Modeling Framework

(GMF)) und ist in das Eclipse-Programmausführungssystem integriert. Der in diesem Plugin verwendete Ansatz ist in den Artikeln[41, 48] beschrieben.

Beschreibung

In der Regel wird die Semantik von Modellierungssprachen mit verschiedenen Modellkonvertierungsregeln aufgezeichnet, z.B. mit dem Standard OMG Query/View/Transformation (QVT). Sie können verwendet werden, um Modelle von einer Sprache in eine andere zu übersetzen. Oft ist die zweite Sprache eine Allzwecksprache, die kompiliert oder interpretiert werden kann (z.B. Java, C++ oder Python). Dieser translatorische Ansatz für semantische Aufgaben reduziert die Abstraktionsebene, da der Operator zwei Themenbereiche gleichzeitig verstehen muss - den Quell- und den Zielbereich, in den der Übergang stattfindet. Auch die Rückmeldung (z.B. im Fehlerfall) von Zielmodell und Quellmodell ist eine recht komplizierte Aufgabe. Dieser Ansatz ist ein Roundtrip-Engineering-Verfahren (13[43]).

Der gesamte Satz von Methoden zur Einstellung der Semantik für jede Sprache kann in mehrere Klassen unterteilt werden. Eine der Hauptklassen ist die Betriebssemantik (OS).

Das Betriebssystem einer Sprache stellt ein bestimmtes Objekt dar, das mit Hilfe dieser Sprache in Form einer Reihe von Berechnungsschritten geschrieben wurde. Formal kann es in Form eines Paares von < Γ, →>, wobei Γ - ein Satz von Konfigurationen, und → - binäres Verhältnis des Übergangs zu einem Satz von Konfigurationen dargestellt werden. Es gibt zwei Arten von OS: Structural Operating Semantics (OOS), vorgeschlagen von Plotkin[38], und natürliche Semantik. Das Hauptkonzept in der CRL ist der Zustand. Normalerweise handelt es sich um einen Satz bestimmter Variablen und deren Werte. Die Konfiguration ist das Paar < S, σ >, wobei S ein Fragment des Programms ist, und σ - der aktuelle Zustand. Die Beziehung des Übergangs ist auch eine binäre Beziehung auf einer Reihe von Konfigurationen. So werden Übergänge in SOS beschrieben durch Gemäß den abstrakten syntaktischen Konstruktionen der Sprache ist es möglich, abstrakte Interpreter für Sprachen basierend auf ihrer Syntax festzulegen. Es ermöglicht auch die Verwendung von struktureller Induktion, z.B. beim Nachweis der Korrektheit von Interpretern und Debuggern.

https://cdn.pixabay.com/photo/2017/06/23/10/48/code-2434271_960_720.jpg
https://cdn.pixabay.com/photo/2017/06/23/10/48/code-2434271_960_720.jpg

Wachsmuth schlug vor, eine textbasierte CRL mit der QVT Relations-Sprache[35] zu verwenden, die Teil des OMG QVT-Standards ist. QVT Relations ist eine hochrangige deklarative Sprache, die sowohl einseitige als auch zweiseitige Modelltransformationen erstellen soll. Später, in[41], wurde dieser Ansatz mit visuellen Modellierungstechnologien kombiniert und ein EProvide Plug-in implementiert, das es ermöglicht, visuelle Interpreter und Debugger für Fachsprachen zu prototypisieren. Zur Beschreibung der Semantik wurden weitere Sprachen hinzugefügt: Java, Abstract State Machines (ASM,[18]), Prolog und Schema.

Dort können Sie auch zusätzliche Strukturen hinzufügen, z.B. um die Funktionalität von Haltepunkten bereitzustellen.

Analyse

Der von Waxmouth vorgeschlagene Ansatz ist recht allgemein gehalten und ermöglicht das Arbeiten mit verschiedenen Spezifikationssprachen, mit deren Hilfe die Semantik direkt spezifiziert wird, hat eine flexible Position bei der Implementierung von Haltepunkten und anderen Standard-Debuggerfunktionen, ist vollständig unter der Eclipse-Plattform implementiert.

Aber wenn man es aus der Sicht der Benutzerfreundlichkeit betrachtet, reduziert das manuelle Schreiben von Semantiken in jeder Textsprache das erreichte Abstraktionsvermögen. Und für die erfolgreiche Anwendung dieses Ansatzes in anderen Umgebungen als Eclipse ist es notwendig, einen Dolmetscher für diese Sprache zu haben, dessen Implementierung eine nicht triviale Aufgabe sein kann. EProvide unterscheidet sich von xUML dadurch, dass es ausreicht, das Metamodell der Sprache und die Art und Weise, wie die Modelle transformiert werden, z.B. mit Hilfe des QVT Relations-Standards zu beschreiben, und es ist nicht notwendig, viele UML-Diagramme zu zeichnen. In EProvide können Sie auf einfache Weise eine schrittweise Ausführung organisieren, kombiniert mit der Unterstützung verschiedener Arten von Haltepunkten und der Verfolgung der Werte von Attributen von Elementen. Für xUML gibt es, wie in Abschnitt 2.3.1 erwähnt, viele Softwaretools, die es unterstützen, so dass es schwierig ist, bei Bedarf unter ihnen zu wählen, um eine bestimmte Aufgabe zu lösen.