Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Using the Meta-Environment for Model-Driven Engineering

on

  • 402 views

Using the Meta-Environment for Model-Driven Engineering. Tijs van der Storm. ESUG 2008, Amsterdam

Using the Meta-Environment for Model-Driven Engineering. Tijs van der Storm. ESUG 2008, Amsterdam

Statistics

Views

Total Views
402
Views on SlideShare
402
Embed Views
0

Actions

Likes
1
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Using the Meta-Environment for Model-Driven Engineering Using the Meta-Environment for Model-Driven Engineering Presentation Transcript

    • Using the Meta-Environment for Model-Driven Engineering Tijs van der Storm, Ph.D. Centrum voor Wiskunde en Informatica storm@cwi.nl http://homepages.cwi.nl/~storm
    • Introduction  Me: Tijs van der Storm  Researcher (CWI) / teacher (UvA)  Interests:  Software evolution  Programming languages  Today:  Using the Meta-Environment...  for Model Driven Engineering (MDE) 26th August 2008 Using the Meta-Environment for MDE 2
    • The Meta-Environment a programming environment for languages 26th August 2008 Using the Meta-Environment for MDE 3
    • ASF+SDF Meta-Environment ASF+SDF ASF: Algebraic Specification Formalism SDF: Syntax Definition Formalism 26th August 2008 Using the Meta-Environment for MDE 4
    • Introducing the Meta- Environment ...in counterpoint with Smalltalk 26th August 2008 Using the Meta-Environment for MDE 5
    • Smalltalk Everything is an object 26th August 2008 Using the Meta-Environment for MDE 6
    • ASF+SDF Meta-Environment Everything is (parsed) “source code” (also called “terms”) 26th August 2008 Using the Meta-Environment for MDE 7
    • Terms are trees  ...parse trees  ASTs with layout 26th August 2008 Using the Meta-Environment for MDE 8
    • Smalltalk Every object has a class 26th August 2008 Using the Meta-Environment for MDE 9
    • ASF+SDF Meta-Environment All source code has syntax (defined by context-free grammars) 26th August 2008 Using the Meta-Environment for MDE 10
    • SDF: Syntax Definition Formalism  Similar to EBNF  GLR parsing  Modular  Scannerless  Arbitrary CFGs  Disambiguation 26th August 2008 Using the Meta-Environment for MDE 11
    • Smalltalk All computation occurs through messages 26th August 2008 Using the Meta-Environment for MDE 12
    • ASF+SDF Meta-Environment All computation is transformation (described using rewrite rules) 26th August 2008 Using the Meta-Environment for MDE 13
    • ASF: Algebraic Specification Formalism  Concrete syntax x + 0 = x x * 1 = x  Match x * (y + z) = x * y + x * z  Construct if !x then S1 else S2 =  Term rewriting if x then S2 else S1 compile(while x do S) =  Purely functional LOOP: load x;  Automatic traversal jz END; compile(S);  traversal functions jmp LOOP; END: 26th August 2008 Using the Meta-Environment for MDE 14
    • Smalltalk The language = the environment 26th August 2008 Using the Meta-Environment for MDE 15
    • ASF+SDF Meta-Environment Languages are environment contracts (environment knows about some languages) 26th August 2008 Using the Meta-Environment for MDE 16
    • Integration in the environment  Little languages  Errors  Facts  Formatting  ...  Easily extended  Define a language  + GUI plugin 26th August 2008 Using the Meta-Environment for MDE 17
    • ASF+SDF Meta-Environment What does it have to do with MDE? 26th August 2008 Using the Meta-Environment for MDE 18
    • What is MDE anyway? Fame Magritte OMeta MBA Smalltalk 26th August 2008 Using the Meta-Environment for MDE 19
    • Model driven engineering  Domain specific notations  graphical  textual  Transformation  code generation  model-to-model  “compilation” 26th August 2008 Using the Meta-Environment for MDE 20
    • MDE & the Meta-Environment Meta Grammar of MetaModel Grammar MetaModel Grammars conforms to Model Source code represented by System System Adapted from: Jean Bézivin, On the Unification Power of Models, UML 2003 26th August 2008 Using the Meta-Environment for MDE 21
    • A little language for Markup L HTM M c mati ar am ka p rogr by 26th August 2008 Using the Meta-Environment for MDE 22
    • A simple example 26th August 2008 Using the Meta-Environment for MDE 23
    • Recursive menus 26th August 2008 Using the Meta-Environment for MDE 24
    • Waebric tool architecture XML Formatter formatter Waebric XML Evaluator grammar grammar Fact Importer Checker extractor Java Compiler = dependency grammar 26th August 2008 Using the Meta-Environment for MDE 25
    • Demo 26th August 2008 Using the Meta-Environment for MDE 26
    • Results: Source Lines of Code Component SDF ASF Total SLOC Java grammar 1583 0 1583 XML grammar (w/o DTDs) 109 0 109 Waebric grammar 248 0 248 Evaluator 348 685 1033 Compiler 277 611 888 Import resolver 106 87 193 Checker 131 174 305 Fact extractor 84 119 203 Waebric formatter 129 43 172 XHTML formatter 50 100 150 3065 1819 4884 26th August 2008 Using the Meta-Environment for MDE 27
    • Summary  Meta-Environment  All data has syntax  All computation is transformation  Languages are environment contracts  MDE = DSL engineering (a.o.)  Waebric case-study 26th August 2008 Using the Meta-Environment for MDE 28
    • Thank you!  Questions?  More info:  http://meta-environment.org  storm@cwi.nl to be released soon... 26th August 2008 Using the Meta-Environment for MDE 29
    • END 26th August 2008 Using the Meta-Environment for MDE 30