Spelling suggestions: "subject:"domänenspezifische absprachen"" "subject:"domänenspezifische ansprachen""
1 |
Description of languages based on object-oriented meta-modellingScheidgen, Markus 19 May 2009 (has links)
In dieser Dissertation, schaue ich auf objekt-orientierte Metamodellierung und wie sie verwendet werden kann, um Computersprachen zu beschreiben. Dabei, fokussiere ich mich nicht nur auf die Beschreibung von Sprachen, sondern auch auf die Verwendung von Sprachbeschreibungen zur automatischen Erzeugung von Sprachwerkzeugen aus Sprachbeschreibungen. Ich nutze die Idee von Metasprachen und Metawerkzeugen. Metasprachen werden verwendet um bestimmte Sprachaspekte, wie Notationen und Semantiken, zu beschreiben, und Metawerkzeuge werden verwendet um Sprachwerkzeuge wie Editoren und Interpreter aus entsprechenden Beschreibungen zu erzeugen. Diese Kombination von Beschreibung und automatischer Entwicklung von Werkzeugen ist als Domänenspezifische Modellierung (DSM) bekannt. Ich verwende DSM basierend auf objekt-orientierter Metamodellierung zur Beschreibung der wichtigen Aspekte ausführbarer Computersprachen. Ich untersuche existierende Metasprachen und Metawerkzeuge für die Beschreibung von Sprachvorkommen, ihrer konkreten Repräsentation und Semantik. Weiter, entwickle ich eine neue Plattform zur Beschreibung von Sprachen basierend auf dem CMOF-Modell der OMG MOF 2.x Empfehlungen. Ich entwickle eine Metasprache und Metawerkzeug für textuelle Notationen. Schlussendlich, entwickle ich eine graphische Metasprache und Metawerkzeug zur Beschreibung von operationaler Semantik von Computersprachen. Um die Anwendbarkeit der vorgestellten Techniken zu prüfen, nehme ich SDL, die Specification and Description Language, als einen Archetypen für textuell notierte Sprachen mit ausführbaren Instanzen. Für diesen Archetyp zeige ich, dass die präsentierten Metasprachen und Metawerkzeuge es erlauben solche Computersprachen zu beschreiben und automatisch Werkzeuge für diese Sprachen zu erzeugen. / In this thesis, I look into object-oriented meta-modelling and how it can be used to describe computer languages. Thereby, I do not only focus on describing languages, but also on utilising the language descriptions to automatically create language tools from language descriptions. I use the notion of meta-languages and meta-tools. Meta-languages are used to describe certain language aspects, such as notation or semantics, and meta-tools are used to create language tools, such as editors or interpreters, from corresponding descriptions. This combination of describing and automated development of tools is known as domain specific modelling (DSM). I use DSM based on object-oriented meta-modelling to describe all important aspects of executable computer languages. I look into existing meta-languages and meta-tools for describing language utterances, their concrete representation, and semantics. Furthermore, I develop a new platform to define languages based on the CMOF-model of the OMG MOF 2.x recommendations. I develop a meta-language and meta-tool for textual language notations. Finally, I develop a new graphical meta-language and meta-tool for describing the operational semantics of computer languages. To prove the applicability of the presented techniques, I take SDL, the Specification and Description Language, as an archetype for textually notated languages with executable instances. For this archetype, I show that the presented meta-languages and meta-tools allow to describe such computer languages and allow to automatically create tools for those languages.
|
2 |
Model transformation languages for domain-specific workbenchesWider, Arif 15 December 2015 (has links)
Domänenspezifische Sprachen (DSLs) sind Software-Sprachen, die speziell für bestimmte Anwendungsdomänen entwickelt wurden. Mithilfe von DSLs können Domänenexperten ihr Domänenwissen auf einem hohen Abstraktionsniveau beschreiben. Wie andere Software-Sprachen auch, benötigen DSLs Sprachwerkzeuge, die Assistenz bei der Erstellung und Verarbeitung von domänenspezifischen Modellen bieten. Eine domänenspezifische Werkbank (DSW) ist ein Software-Werkzeug, welches mehrere solcher Sprachwerkzeuge für eine DSL miteinander integriert. Existierende Werkzeuge, die es erlauben eine DSW aufgrund der Beschreibung einer DSL automatisch generieren zu lassen, unterstützen jedoch nicht die Beschreibung und Generierung von editierbaren Sichten. Eine Sicht ist ein Teil einer DSW, der nur einen bestimmten Aspekt eines Modells darstellt. Diese Dissertation stellt spezielle Modelltransformationssprachen (MTLs) vor, mit denen die Synchronisation von Sichten in einer generierten DSW beschrieben werden kann. Dadurch können DSWs mit editierbaren Sichten mittels existierender Werkzeuge zur Generierung von Sprachwerkzeugen erstellt werden. Dafür wird eine DSW für die Nanophysik-Domäne sowie eine Taxonomie von Synchronisationstypen vorgestellt, welche es erlaubt genau zu bestimmen, welche Art von Modelltransformationen für die Synchronisation von Sichten in dieser Werkbank benötigt werden. Entsprechend dieser Anforderungen werden zwei MTLs entwickelt. Insbesondere wird eine bidirektionale MTL entwickelt. Mit solch einer Sprache kann man eine Relation, welche definiert ob zwei Modelle synchron sind, so beschreiben, dass die entsprechende Synchronisationslogik automatisch abgeleitet werden kann. Die gezeigten MTLs werden als interne DSLs - das heißt eingebettet als ausdrucksstarke Bibliotheken - in der Programmiersprache Scala implementiert. Auf diese Weise kann Scalas Typprüfung genutzt werden, um Transformationen und deren Komposition statisch zu verifizieren. / Domain-specific languages (DSLs) are software languages which are tailored to a specific application domain. DSLs enable domain experts to create domain-specific models, that is, high-level descriptions of domain knowledge. As any other software languages, DSLs rely on language tools which provide assistance for processing and managing domain-specific models. A domain-specific workbench is an integrated set of such tools for a DSL. A recently proposed approach is to automatically generate a domain-specific workbench for a DSL from a description of that DSL. However, existing tools which apply this approach do not support to describe and generate editable domain-specific views. A view is a part of domain-specific workbench that presents only one aspect of a model, for example, its hierarchical structure. This dissertation presents special model transformation languages which support the description of view synchronization in a generated domain-specific workbench. This allows a multi-view domain-specific workbench to be created with existing tools for language tool generation. We present a generated domain-specific workbench for the nanophysics domain and present a taxonomy of synchronization types. This allows us to precisely define what model transformations are required for view synchronization in that workbench. According to these requirements, we develop two transformation languages by adapting existing ones. In particular, we develop a bidirectional transformation language. With such a language one can describe a relation which defines whether two models are in sync and let the synchronization logic be inferred automatically. We implement model transformation languages as internal DSLs - that is, embedded as expressive libraries - in the Scala programming language and use Scala''s type checking for static verification of transformations and their composition.
|
3 |
Formalisierung gestischer Eingabe für Multitouch-SystemeKammer, Dietrich 03 July 2014 (has links) (PDF)
Die Mensch-Computer-Interaktion wird dank neuer Eingabemöglichkeiten jenseits von Tastatur und Maus reicher, vielseitiger und intuitiver. Durch den Verzicht auf zusätzliche Geräte beim Umgang mit Computern geht seitens der Eingabeverarbeitung jedoch eine erhöhte Komplexität einher: Die Programmierung gestischer Eingabe für Multitouch-Systeme ist in derzeitigen Frameworks abgesehen von den verfügbaren Standard-Gesten mit hohem Aufwand verbunden.
Die entwickelte Gestenformalisierung für Multitouch (GeForMT) definiert eine domänenspezifische Sprache zur Beschreibung von Multitouch-Gesten. Statt wie verwandte Formalisierungsansätze detaillierte Filter für die Rohdaten zu definieren, bedient sich GeForMT eines bildhaften Ansatzes, um Gesten zu beschreiben. Die Konzeption von Gesten wird unterstützt, indem beispielsweise in einem frühen Stadium der Entwicklung Konflikte zwischen ähnlichen Gesten aufgedeckt werden. Die formalisierten Gesten lassen sich direkt in den Code einbetten und vereinfachen damit die Programmierung. Das zugrundeliegende Framework sorgt für die Verbindung zu den Algorithmen der Gestenerkennung. Die Übertragung des semiotischen Ansatzes zur Formalisierung auf andere Formen gestischer Eingabe wird abschließend diskutiert.
|
4 |
Formalisierung gestischer Eingabe für Multitouch-SystemeKammer, Dietrich 31 January 2014 (has links)
Die Mensch-Computer-Interaktion wird dank neuer Eingabemöglichkeiten jenseits von Tastatur und Maus reicher, vielseitiger und intuitiver. Durch den Verzicht auf zusätzliche Geräte beim Umgang mit Computern geht seitens der Eingabeverarbeitung jedoch eine erhöhte Komplexität einher: Die Programmierung gestischer Eingabe für Multitouch-Systeme ist in derzeitigen Frameworks abgesehen von den verfügbaren Standard-Gesten mit hohem Aufwand verbunden.
Die entwickelte Gestenformalisierung für Multitouch (GeForMT) definiert eine domänenspezifische Sprache zur Beschreibung von Multitouch-Gesten. Statt wie verwandte Formalisierungsansätze detaillierte Filter für die Rohdaten zu definieren, bedient sich GeForMT eines bildhaften Ansatzes, um Gesten zu beschreiben. Die Konzeption von Gesten wird unterstützt, indem beispielsweise in einem frühen Stadium der Entwicklung Konflikte zwischen ähnlichen Gesten aufgedeckt werden. Die formalisierten Gesten lassen sich direkt in den Code einbetten und vereinfachen damit die Programmierung. Das zugrundeliegende Framework sorgt für die Verbindung zu den Algorithmen der Gestenerkennung. Die Übertragung des semiotischen Ansatzes zur Formalisierung auf andere Formen gestischer Eingabe wird abschließend diskutiert.:1 Einleitung
1.1 Motivation
1.2 Zielstellung und Abgrenzung
1.3 Aufbau der Arbeit
2 Interdisziplinäre Grundlagenbetrachtung
2.1 Semiotik
2.1.1 Begriffe und Zeichenklassen
2.1.2 Linguistik
2.1.3 Graphische Semiologie
2.1.4 Formgestaltung und Produktsprache
2.1.5 Interfacegestaltung
2.2 Gestenforschung
2.2.1 Kendons Kontinuum für Gesten
2.2.2 Taxonomien
2.2.3 Einordnung
2.3 Gestische Eingabe in der Mensch-Computer-Interaktion
2.3.1 Historische Entwicklung von Ein- und Ausgabetechnologien
2.3.2 Begreifbare Interaktion
2.3.3 Domänenspezifische Modellierung
2.4 Zusammenfassung
3 Verwandte Formalisierungsansätze
3.1 Räumliche Gesten
3.1.1 XML-Beschreibung mit der Behaviour Markup Language
3.1.2 Detektornetze in multimodalen Umgebungen
3.1.3 Gestenvektoren zur Annotation von Videos
3.1.4 Vergleich
3.2 Gesten im Sketching
3.2.1 Gestenfunktionen für Korrekturzeichen
3.2.2 Sketch Language zur Beschreibung von Skizzen
3.2.3 Domänenspezifische Skizzen mit LADDER
3.2.4 Vergleich
3.3 Flächige Gesten
3.3.1 Regelbasierte Definition mit Midas
3.3.2 Gesture Definition Language als Beschreibungssprache
3.3.3 Reguläre Ausdrücke von Proton
3.3.4 Gesture Interface Specification Language
3.3.5 Logische Formeln mit Framous
3.3.6 Gesture Definition Markup Language
3.3.7 Vergleich
3.4 Zusammenfassung
4 Semiotisches Modell zur Formalisierung
4.1 Phasen gestischer Eingabe
4.2 Syntax gestischer Eingabe
4.3 Semantik gestischer Eingabe
4.4 Pragmatik gestischer Eingabe
4.5 Zusammenfassung
5 Gestenformalisierung für Multitouch
5.1 Ausgangslage für die Konzeption
5.1.1 Ikonographische Einordnung flächiger Gesten
5.1.2 Voruntersuchung zur Programmierung flächiger Gesten
5.1.3 Anforderungskatalog für die Formalisierung
5.2 Semiotische Analyse flächiger Gesten
5.2.1 Syntax flächiger Gesten
5.2.2 Semantik flächiger Gesten
5.2.3 Pragmatik flächiger Gesten
5.3 Präzedenzfälle für die Formalisierung
5.3.1 Geschicklichkeit bei der Multitouch-Interaktion
5.3.2 Präzision bei flächigen Gesten
5.3.3 Kooperation in Multitouch-Anwendungen
5.4 Evaluation und Diskussion
5.4.1 Vergleich der Zeichenanzahl
5.4.2 Evaluation der Beschreibungsfähigkeit
5.4.3 Limitierungen und Erweiterungen
6 Referenzarchitektur
6.1 Analyse existierender Multitouch-Frameworks
6.2 Grundlegende Architekturkomponenten
6.2.1 Parser
6.2.2 Datenmodell
6.2.3 Gestenerkennung und Matching
6.2.4 Programmierschnittstelle
6.3 Referenzimplementierung für JavaScript
6.3.1 Komponenten der Bibliothek
6.3.2 Praktischer Einsatz
6.3.3 Gesteneditor zur bildhaften Programmierung
7 Praxisbeispiele
7.1 Analyse prototypischer Anwendungen
7.1.1 Workshop zur schöpferischen Zerstörung
7.1.2 Workshop zu semantischen Dimensionen
7.1.3 Vergleich
7.2 Abbildung von Maus-Interaktion auf flächige Gesten in DelViz
7.2.1 Datengrundlage und Suchkonzept
7.2.2 Silverlight-Implementierung von GeForMT
7.3 Flächige Gesten im 3D-Framework Bildsprache LiveLab
7.3.1 Komponentenarchitektur
7.3.2 Implementierung von GeForMT mit C++
7.4 Statistik und Zusammenfassung
8 Weiterentwicklung der Formalisierung
8.1 Räumliche Gesten
8.1.1 Verwandte Arbeiten
8.1.2 Prototypischer Aufbau
8.1.3 Formalisierungsansatz
8.2 Substanzen des Alltags
8.2.1 Verwandte Arbeiten
8.2.2 Experimente mit dem Explore Table
8.2.3 Formalisierungsansatz
8.3 Elastische Oberflächen
8.3.1 Verwandte Arbeiten
8.3.2 Der Prototyp DepthTouch
8.3.3 Formalisierungsansatz
9 Zusammenfassung
9.1 Kapitelzusammenfassungen und Beiträge der Arbeit
9.2 Diskussion und Bewertung
9.3 Ausblick und zukünftige Arbeiten
Anhang
Vergleichsmaterial Formalisierungsansätze
Fragebogen
Nachbefragung
Ablaufplan studentischer Workshops
Grammatikdefinitionen
Statistische Auswertung Gestensets
Literatur
Webreferenzen
Eigene Veröffentlichungen
Betreute studentische Arbeiten
Abbildungsverzeichnis
Tabellen
Verzeichnis der Code-Beispiele
|
5 |
Well-Formed and Scalable Invasive Software Composition / Wohlgeformte und Skalierbare Invasive SoftwarekompositionKarol, Sven 26 June 2015 (has links) (PDF)
Software components provide essential means to structure and organize software effectively. However, frequently, required component abstractions are not available in a programming language or system, or are not adequately combinable with each other. Invasive software composition (ISC) is a general approach to software composition that unifies component-like abstractions such as templates, aspects and macros. ISC is based on fragment composition, and composes programs and other software artifacts at the level of syntax trees. Therefore, a unifying fragment component model is related to the context-free grammar of a language to identify extension and variation points in syntax trees as well as valid component types. By doing so, fragment components can be composed by transformations at respective extension and variation points so that always valid composition results regarding the underlying context-free grammar are yielded. However, given a language’s context-free grammar, the composition result may still be incorrect.
Context-sensitive constraints such as type constraints may be violated so that the program cannot be compiled and/or interpreted correctly. While a compiler can detect such errors after composition, it is difficult to relate them back to the original transformation step in the composition system, especially in the case of complex compositions with several hundreds of such steps. To tackle this problem, this thesis proposes well-formed ISC—an extension to ISC that uses reference attribute grammars (RAGs) to specify fragment component models and fragment contracts to guard compositions with context-sensitive constraints. Additionally, well-formed ISC provides composition strategies as a means to configure composition algorithms and handle interferences between composition steps.
Developing ISC systems for complex languages such as programming languages is a complex undertaking. Composition-system developers need to supply or develop adequate language and parser specifications that can be processed by an ISC composition engine. Moreover, the specifications may need to be extended with rules for the intended composition abstractions.
Current approaches to ISC require complete grammars to be able to compose fragments in the respective languages. Hence, the specifications need to be developed exhaustively before any component model can be supplied. To tackle this problem, this thesis introduces scalable ISC—a variant of ISC that uses island component models as a means to define component models for partially specified languages while still the whole language is supported. Additionally, a scalable workflow for agile composition-system development is proposed which supports a development of ISC systems in small increments using modular extensions.
All theoretical concepts introduced in this thesis are implemented in the Skeletons and Application Templates framework SkAT. It supports “classic”, well-formed and scalable ISC by leveraging RAGs as its main specification and implementation language. Moreover, several composition systems based on SkAT are discussed, e.g., a well-formed composition system for Java and a C preprocessor-like macro language. In turn, those composition systems are used as composers in several example applications such as a library of parallel algorithmic skeletons.
|
6 |
Well-Formed and Scalable Invasive Software CompositionKarol, Sven 18 May 2015 (has links)
Software components provide essential means to structure and organize software effectively. However, frequently, required component abstractions are not available in a programming language or system, or are not adequately combinable with each other. Invasive software composition (ISC) is a general approach to software composition that unifies component-like abstractions such as templates, aspects and macros. ISC is based on fragment composition, and composes programs and other software artifacts at the level of syntax trees. Therefore, a unifying fragment component model is related to the context-free grammar of a language to identify extension and variation points in syntax trees as well as valid component types. By doing so, fragment components can be composed by transformations at respective extension and variation points so that always valid composition results regarding the underlying context-free grammar are yielded. However, given a language’s context-free grammar, the composition result may still be incorrect.
Context-sensitive constraints such as type constraints may be violated so that the program cannot be compiled and/or interpreted correctly. While a compiler can detect such errors after composition, it is difficult to relate them back to the original transformation step in the composition system, especially in the case of complex compositions with several hundreds of such steps. To tackle this problem, this thesis proposes well-formed ISC—an extension to ISC that uses reference attribute grammars (RAGs) to specify fragment component models and fragment contracts to guard compositions with context-sensitive constraints. Additionally, well-formed ISC provides composition strategies as a means to configure composition algorithms and handle interferences between composition steps.
Developing ISC systems for complex languages such as programming languages is a complex undertaking. Composition-system developers need to supply or develop adequate language and parser specifications that can be processed by an ISC composition engine. Moreover, the specifications may need to be extended with rules for the intended composition abstractions.
Current approaches to ISC require complete grammars to be able to compose fragments in the respective languages. Hence, the specifications need to be developed exhaustively before any component model can be supplied. To tackle this problem, this thesis introduces scalable ISC—a variant of ISC that uses island component models as a means to define component models for partially specified languages while still the whole language is supported. Additionally, a scalable workflow for agile composition-system development is proposed which supports a development of ISC systems in small increments using modular extensions.
All theoretical concepts introduced in this thesis are implemented in the Skeletons and Application Templates framework SkAT. It supports “classic”, well-formed and scalable ISC by leveraging RAGs as its main specification and implementation language. Moreover, several composition systems based on SkAT are discussed, e.g., a well-formed composition system for Java and a C preprocessor-like macro language. In turn, those composition systems are used as composers in several example applications such as a library of parallel algorithmic skeletons.
|
Page generated in 0.0969 seconds