180 likes | 199 Views
Models for Language Engineering. Bruno F. Barroca. Outline: Type Models Conformance Relations between models (Model) Representation Self-description Efficiency Usability Model of a Meta-Modeling Environment. Type Models: Types of Type models Linguistic Grammars
E N D
Models forLanguage Engineering Bruno F. Barroca
Outline: • Type Models • Conformance • Relations between models • (Model) Representation • Self-description • Efficiency • Usability • Model of a Meta-Modeling Environment
Type Models: Types of Type models • Linguistic • Grammars • Parsers (Strings -> Trees) • Visitor Pattern (Trees -> Graphs) • Attribute Grammars (Multi-stage programming) • Metamodels (Modelverse, ECore, KM3, etc.) • Syntax-directed modeling environments • Instantiation (Factory Pattern) • Ontological (General) • Domain Models (Automotive, Bio-informatics, Pharmaceuticals) • Constraint solving • Model Checkers • Theorem provers • Description Logics / Reasoners • Orthogonal analysis
Relations betweenModels • Models and Models • Model Transformations • Match Models • Apply Models • Conformance with Type Models • Model elements • From different models • Models and Model Elements • Relations are also typed • Megamodeling • Multi-level modeling
Self-describable representations • Online (live) modifications and updates • Granularity • Boundary (scope) of self-modification • Built-in functionality • Heterogeneity problems • Rewrite itself onto a new platform (situation) • Based on some specification • Typically a Platform model, or • Deployment model
Efficient representation • Match operation on Graphs is a NP-Complete Problem • Match operation on Trees (Visitor pattern) • TrNET (Join operations, Construction of complex match patterns based on simple ones) • Analysis • Overlapped pattern matching • Automated redundancy check • Clone detection • Optimization (cost models) • Easier to match on paths? • with proper representation • Almost constant complexity • How to represent Graphs as paths? • Time complexity • Spatial complexity • Redundancy
Usable representation • General modeling languages? (e.g., UML) • Structure • Class Diagrams • Component Diagrams • Behavior • State charts • Finite state machines • Sequence Diagrams • SCCD with ActionCode • Time concept • DEVS with Neutral Action Code • DEVSPro • DEVSLang • Action Code • Programming Language agnostic • Platform independent (API/Library)
Modeling of (Meta) Modeling Environments? • Variability analysis • Features • Language Engineering Domain analysis • Types and Patterns • Synchronization of Abstract Syntax with Concrete Syntax • Merge/composition/weaving of arbitrary AS with CS • Notion of model and language fragments • Network language as a glue for the fragments • CS Metamodel? • Diagram/canvas graphical objects/Toolbars/Property Views • Structure • Behavior • Wizards and Tutorials • Notion of Layers • Restricted views based on User profiles