Abstract (deu)
Die Nachfrage nach der Anwendung formaler Methoden im Bereich der Software-, Hardware- und System-Entwicklung ist nach wie vor ungebrochen. In den letzten Jahrzehnten wurden mehrere domänenspezifische Sprachen (DSLs) und Werkzeuge entwickelt, um verschiedene Arten von Entwurfsherausforderungen zu bewältigen, Anforderungen zu erfassen und geeignete Entwicklungsunterstützung durch Codegenerierungstechniken für Software- und Hardwarebereiche anzubieten. Trotz der intensiven Untersuchung und Erforschung der jeweiligen Domäne fehlt es den meisten Entwicklungsmethoden an geeigneten Techniken, um über das spezifizierte Design Aussagen zu treffen. An dieser Stelle kommen formale Methoden ins Spiel, die in allen verschiedenen Entwicklungs-Bereichen eine Rolle spielt. Die industrielle Hardware-Entwicklung wird zumeist mit Hilfe formaler Methoden durchgeführt oder unterstützt, während formale Methoden in der Software- und Systementwicklung im Allgemeinen immer noch als eine eher akademische Disziplin angesehen werden, obwohl Forscher in aller Welt bereits große Anstrengungen unternommen haben. Insbesondere im Softwarebereich werden sie für die Industrie immer relevanter, da fehlerhaftes Verhalten, Sicherheitsmängel, Sicherheitsverletzungen usw. den Ruf und den Marktanteil eines Unternehmens beeinträchtigen oder bei sicherheitskritischen oder eingebetteten Anwendungen sogar Menschenleben kosten können. Infolgedessen wurden Methoden des modellgetriebene Systementwicklung (MDSE) entwickelt, die umfangreiche Techniken der modellbasierten Entwicklung (MDD) für einen bestimmten Entwicklungsbereich bieten. Die MDD-Technik umfasst eine DSL und ein Werkzeug, das aus einem speziellen Parser, einem Sprachvalidierungsanalysator und einem Codegenerator besteht. Leider sind fast alle MDSE-Methoden maßgeschneiderte Formalismen für eine bestimmte Problemdomäne. Einige dieser Techniken definieren und beschreiben die Sprachsemantik durch den Codegenerierungsprozess, andere ermöglichen die vollständige oder teilweise Simulation der Systemeigenschaften des spezifizierten Entwurfs vor der Erstellung des eigentlichen Systems. Darüber hinaus kann ein in einer DSL beschriebener Entwurf nicht wiederverwendet oder durch Umschreiben in eine andere DSL übertragen werden, da die Spezifikationssprachen auf einem völlig anderen domänenspezifischen Abstraktionsniveau sich befinden. Die abstrakte Zustandsmaschinen (ASM) Methode ist eine zustandsbasierte formale Methode, die genau als das fehlende Teil in dem oben beschriebenen Spezifikationsdilemma angesehen werden kann. Sie bietet eine domänenunabhängige Möglichkeit, das Verhalten eines Systems zu erfassen, unabhängig davon, ob das spezifizierte System ein Software-, Hardware- oder sogar ein gemischtes Software-/Hardware-System ist. Basierend auf einer ASM Spezifikation können Aussagen getroffen werden, um bestimmte Systemeigenschaften zu überprüfen oder sogar bestimmte Aspekte des beschriebenen Systems wie Sicherheitseinschränkungen zu beweisen. Erwähnenswert ist, dass ASM Spezifikationen standardmäßig ausführbare Spezifikationen sind, was bedeutet, dass jedes ASM spezifizierte System simuliert werden kann, ohne dass eine konkrete Implementierung erstellt oder abgeleitet werden muss. Letztere kann per Definition entweder durch Verfeinerungstechniken oder durch Codegenerierung abgeleitet werden, wie dies bei MDSE/MDD der Fall ist. Dennoch mangelt es der Tool-Unterstützung für ASM-basierte Spezifikationssprachen in Bezug auf die Interpretation (Simulation) und Codegenerierung an modernen Compilertechniken und aktuellen Sprachkonzepten. Vor einem Jahrzehnt begann ein Forschungsprojekt, das sich mit beiden Problemen - Interpretation und Codegenerierung - befasste und vom Autor durch eine Open-Source Reimplementierung namens Corinthian Abstract State Machine (CASM) veröffentlicht wurde. Diese Dissertation beschreibt die inkrementell abgeleitete ASM-basierte Compiler-Grundlage und das Framework für CASM, um weitere (optimierte) Compiler- und Interpreter-Potenziale zu erforschen und zu untersuchen sowie die Möglichkeit zu geben, neue Sprachdesignkonzepte zu erforschen. Im Rahmen dieser Arbeit wurde ein neuartiges ASM-basiertes modellbasiertes Transformationsframework unter Verwendung eines Compiler mit mehrstufigen Zwischendarstellungen (IR) erarbeitet, um eine flexible Software- und/oder Hardwarecodegenerierung mit Optimierungsfokus im Vordergrund sowie eine schnelle Ausführung (Interpretation/Simulation) als zweites großes Forschungsziel zu erreichen. Die definierte ASM-basierte IR erlaubt es, ASM-bezogene Compileroptimierungen durch ein klar definiertes Modell zu erforschen und zu definieren und eine einheitliche Schnittstelle für andere ASM-basierte Sprachen- und Werkzeugentwickler bereitzustellen, um z.B. die Implementierung in CASM wiederzuverwenden. Darüber hinaus wurde in dieser Arbeit auch eine verbesserte symbolische Ausführung für CASM entwicklet, die auf der ASM-basierten IR umgesetzt wurde. Diese Dissertation berichtet über die Untersuchung und Einführung eines objekt-orientierten Sprachkonstrukts für ASM-basierte Sprachen, das in einem inkrementellen Prozess durch zwei kontrollierte Experimente und von einer Eye-Tracking Studie abgeleitet wurde. Das erste kontrollierte Experiment verglich die Verständlichkeit von drei objektorientierten Abstraktionen, die in einer ASM-basierten Sprache eingeführt wurden, nämlich Interfaces, Mixins und Traits. Die Ergebnisse zeigten, dass Interfaces und Traits ähnlich gut verstanden werden, was zu einem weiteren kontrollierten Experiment führte, in dem die Benutzerfreundlichkeit der beiden objektorientierten Sprachkonstrukte Interfaces und Traits im Kontext einer ASM-basierten Sprachsyntaxerweiterung untersucht wurde. Dabei wurde ein signifikanter Unterschied festgestellt, nämlich dass das Traits-Sprachkonstrukt im Vergleich zum Interfaces-Sprachkonstrukt besser nutzbar ist. Basierend auf dieser Erkenntnis führten wir ein weiteres kontrolliertes Experiment in Form eines Eye-Tracking Experiments für das Trait-basierte Sprachkonstrukt durch, um durch die Analyse der Blickbewegungsmuster sowie des Fixationsverhaltens der Augen Erkenntnisse über die Verständlichkeit der Syntaxerweiterung zu gewinnen. Das Ergebnis der durchgeführten Studien manifestiert sich in einem neuartigen Trait-basierten objektorientierten Sprachkonstrukt in CASM, das ASM-basierten Sprachen nun sogar die Möglichkeit bietet vorhandene und neue ASM Spracheigenschaften einfach in der ASM Sprache selbst zu beschreiben.