Jede neue Sprache ist eine Reihe von Zeichen, mit deren Hilfe der Benutzer nach bestimmten Regeln den bestimmten Text (ein sinnvolles Design) erstellen kann.
Traditionell ist jede Sprache in drei Dimensionen unterteilt: Syntax, die die Regeln für die Konstruktion von Texten aus Zeichen definiert, Semantik, die die Projektionen von Zeichen auf den Themenbereich der Sprache definiert, und Pragmatik, die beschreibt, wie die Sprache vom Benutzer verwendet wird.
Es gibt drei Arten von Syntax für visuelle Modellierungssprachen: abstrakt, spezifisch und Service. Die Servicesyntax ist für die Darstellung von visuellen Spezifikationen in einer bestimmten Sprache im Speicher verantwortlich. Die abstrakte Syntax definiert ein Regelwerk, mit dem es möglich ist, einfache Komponenten einer Sprache (Zeichen und Designs) zu komplexen (Texte, d.h. visuelle Modelle) zu verbinden. Normalerweise wird es als Grammatik- oder Metamodell festgelegt. Eine bestimmte Syntax (grafische Notation oder nur eine Notation) besteht aus einem formalisierten Satz von grafischen Symbolen, mit denen der Benutzer Texte schreiben kann, d.h. die Regeln für die Darstellung von Sprachkonstruktionen. Die Semantik ermöglicht es Ihnen, Konstruktionen eine Bedeutung zu geben, d.h. ihre Übereinstimmung mit realen Situationen aus dem Themenbereich oder aus einem anderen formal definierten Bereich, dem semantischen Bereich, zu bestimmen. So wird beispielsweise die Semantik der Interpretation verwendet, um die abstrakte Darstellung dieser Konstruktionen in eine ausführbare zu überführen.
Es gibt vier Haupttypen von Semantik in der Theorie der Programmiersprachen: operational, denotation, axiomatisch und translational. Die Denotations-Semantik wurde in[42] beschrieben. Normalerweise verwendet dieser Ansatz einige mathematische Objekte oder Funktionen, die als Denotation bezeichnet werden, als semantischen Bereich, und die Übereinstimmung von Sprachkonstruktionen mit diesen Objekten wird rekursiv festgelegt, d.h. die Denotation für den Ausdruck sollte aus Unterausdruck-Denotationen bestehen. Häufig wird die λ Kalkulation verwendet, um diese Korrespondenz zu erstellen.
Diese Art der Semantik ist mathematisch streng und formal, aber manchmal in ihrer reinsten Form. hat nicht genug Klarheit für Nicht-Fachleute.
Die Betriebssemantik ist ebenfalls mathematisch streng und kann von zwei Arten sein: 2 Strukturelle Betriebssemantik (kleine Schritt-Semantik,[38]) und natürliche Semantik (Semantik mit großem Schritt,[28]). Die strukturelle Betriebssemantik besteht aus einem Regelwerk, mit dessen Hilfe die Ausführung eines bestimmten Programms in dieser Sprache erfolgt.
Wird als eine Folge von einzelnen Rechenschritten dargestellt. Nachdem der Anwendung dieser Regeln können einige Restberechnungen bleiben, unter Berücksichtigung von wenn das Programm weiterhin in Form einer Reihe von Berechnungsschritten dargestellt wird.
Die natürliche Semantik verbietet solche Restberechnungen und bestimmt sofort, wie das Endergebnis durch den Ausdruck erhalten wird.
Die Axiomatische Semantik[25] ist eine Reihe von logischen Axiomen. Für sie werden alle in dieser Sprache geschriebenen Ausdrücke in Form von logischen Formeln berücksichtigt, deren Wert formal aus dem anfänglichen Satz von Axiomen abgeleitet wird.
Ein weiterer wichtiger semantischer Typ ist die Übersetzung[45]. Sie bestehen aus ein Regelwerk für die Konvertierung von Modellen, mit dessen Hilfe das Modell in der Ausgangssprache wird in ein Modell in einer anderen Sprache übersetzt, für das bereits eine ausführbare Semantik eingestellt ist. Zum Beispiel geht es oft darum, Code in einer Allzwecksprache zu generieren, für die Folgendes gilt es gibt Compiler und Debugger (Java, C++, Python, etc.) Dieser Ansatz, mit einem (b) Die Notwendigkeit eines Wissensentwicklers in beiden Bereichen (Quelle und Ziel), und (c) Die Notwendigkeit eines Wissensentwicklers in beiden Bereichen (Quelle und Ziel). Der andere wird gut wahrgenommen, da das Konzept des abstrakten Originalthemas Die Bereiche werden zu spezifischen Konstruktionen der ausführbaren Sprache.
Zur Lösung des Problems kann auch die translationale Semantik verwendet werden. Transformation von Modellen, d.h. um die Transformation von Modellen innerhalb einer einzigen
Bildsprache (z.B. für die Implementierung von Model Refactoring, was mehr wäre....) wird in Abschnitt 6) ausführlich behandelt, die Übersetzung von Modellen von einer Sprache in eine andere (dies ist notwendig, (z.B. um sicherzustellen, dass das Modell von einer Sprache in eine andere exportiert wird). Zur gleichen Zeit die zweite Sprache kann eine Textsprache sein, und dann wird es eine normale Codegenerierung sein. Es gibt eine mehrere verschiedene Möglichkeiten, Modelltransformationen anzulegen, von denen einige basieren auf grafischen Grammatiken[14]. So ist das Problem der Modelltransformation ist für die heutige Zeit sehr relevant. Eine der Möglichkeiten, es zu lösen, war ist in der MetaLanguage[47] implementiert.
Nachdem wir die grundlegenden allgemeinen Typen der Semantik-Aufgabe der Programmiersprache gegeben haben, lassen Sie uns fortfahren mit der Berücksichtigung einer Reihe spezifischer Ansätze, die in den verschiedenen Papieren vorgeschlagen wurden, und die in den Softwaretools verwendet werden.