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
2
3
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
4
5
6
Conformance
7
Conformance
8
Relations between Models
• 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
9
10
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
11
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
12
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)
13
14
15
16
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
Thank you!
17