17
Models for Language Engineering Bruno F. Barroca

Models for Language Engineering Bruno F. Barroca

Embed Size (px)

Citation preview

Page 1: Models for Language Engineering Bruno F. Barroca

Models forLanguage Engineering

Bruno F. Barroca

Page 2: 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

2

Page 3: Models for Language Engineering Bruno F. Barroca

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

Page 4: Models for Language Engineering Bruno F. Barroca

4

Page 5: Models for Language Engineering Bruno F. Barroca

5

Page 6: Models for Language Engineering Bruno F. Barroca

6

Page 7: Models for Language Engineering Bruno F. Barroca

Conformance

7

Page 8: Models for Language Engineering Bruno F. Barroca

Conformance

8

Page 9: Models for Language Engineering Bruno F. Barroca

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

Page 10: Models for Language Engineering Bruno F. Barroca

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

Page 11: Models for Language Engineering Bruno F. Barroca

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

Page 12: Models for Language Engineering Bruno F. Barroca

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)

Page 13: Models for Language Engineering Bruno F. Barroca

13

Page 14: Models for Language Engineering Bruno F. Barroca

14

Page 15: Models for Language Engineering Bruno F. Barroca

15

Page 16: Models for Language Engineering Bruno F. Barroca

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

Page 17: Models for Language Engineering Bruno F. Barroca

Thank you!

17