SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
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
26th August 2008 Using the Meta-Environment for MDE 2
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 3
The Meta-Environment
a programming environment for languages
26th August 2008 Using the Meta-Environment for MDE 4
ASF+SDF Meta-Environment
ASF+SDF
ASF: Algebraic Specification Formalism
SDF: Syntax Definition Formalism
26th August 2008 Using the Meta-Environment for MDE 5
Introducing the Meta-
Environment
...in counterpoint with Smalltalk
26th August 2008 Using the Meta-Environment for MDE 6
Smalltalk
Everything is an object
26th August 2008 Using the Meta-Environment for MDE 7
ASF+SDF Meta-Environment
Everything is (parsed) “source code”
(also called “terms”)
26th August 2008 Using the Meta-Environment for MDE 8
Terms are trees
 ...parse trees
 ASTs with layout
26th August 2008 Using the Meta-Environment for MDE 9
Smalltalk
Every object has a class
26th August 2008 Using the Meta-Environment for MDE 10
ASF+SDF Meta-Environment
All source code has syntax
(defined by context-free grammars)
26th August 2008 Using the Meta-Environment for MDE 11
SDF: Syntax Definition
Formalism
 Similar to EBNF
 Modular
 Arbitrary CFGs
 GLR parsing
 Scannerless
 Disambiguation
26th August 2008 Using the Meta-Environment for MDE 12
Smalltalk
All computation occurs through messages
26th August 2008 Using the Meta-Environment for MDE 13
ASF+SDF Meta-Environment
All computation is transformation
(described using rewrite rules)
26th August 2008 Using the Meta-Environment for MDE 14
ASF: Algebraic Specification
Formalism
 Concrete syntax
 Match
 Construct
 Term rewriting
 Purely functional
 Automatic traversal
 traversal functions
x + 0 = x
x * 1 = x
x * (y + z) =
x * y + x * z
if !x then S1 else S2 =
if x then S2 else S1
compile(while x do S) =
LOOP:
load x;
jz END;
compile(S);
jmp LOOP;
END:
26th August 2008 Using the Meta-Environment for MDE 15
Smalltalk
The language = the environment
26th August 2008 Using the Meta-Environment for MDE 16
ASF+SDF Meta-Environment
Languages are environment contracts
(environment knows about some languages)
26th August 2008 Using the Meta-Environment for MDE 17
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 18
ASF+SDF Meta-Environment
What does it have to do with MDE?
26th August 2008 Using the Meta-Environment for MDE 19
What is MDE anyway?
OMeta
Magritte
Fame
MBA Smalltalk
26th August 2008 Using the Meta-Environment for MDE 20
Model driven engineering
 Domain specific notations
 graphical
 textual
 Transformation
 code generation
 model-to-model
 “compilation”
26th August 2008 Using the Meta-Environment for MDE 21
MDE & the Meta-Environment
MetaModel
Model
System
represented by
conforms to
Meta
MetaModel Grammar
Source code
System
Grammar of
Grammars
Adapted from: Jean Bézivin, On the Unification Power of Models, UML 2003
26th August 2008 Using the Meta-Environment for MDE 22
A little language for Markup
M
arkaby
programmatic HTML
26th August 2008 Using the Meta-Environment for MDE 23
A simple example
26th August 2008 Using the Meta-Environment for MDE 24
Recursive menus
26th August 2008 Using the Meta-Environment for MDE 25
Waebric tool architecture
Waebric
grammar
Evaluator
Compiler
Formatter
Importer Checker
XML
grammar
Java
grammar
Fact
extractor
XML
formatter
= dependency
26th August 2008 Using the Meta-Environment for MDE 26
Demo
26th August 2008 Using the Meta-Environment for MDE 27
Results: Source Lines of Code
Component SDF ASF Total SLOC
Java grammar 1583 0 1583
XML grammar (w/o DTDs) 109 0 109
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
129 43 172
XHTML formatter 50 100 150
3065 1819 4884
Waebric grammar
Waebric formatter
26th August 2008 Using the Meta-Environment for MDE 28
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 29
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 30
END

Más contenido relacionado

Similar a Using the Meta-Environment for Model-Driven Engineering

Semi structure data extraction
Semi structure data extractionSemi structure data extraction
Semi structure data extraction
R A Akerkar
 
asmjit - Complete x86 x64 JIT Assembler for C++.pdf
asmjit - Complete x86 x64 JIT Assembler for C++.pdfasmjit - Complete x86 x64 JIT Assembler for C++.pdf
asmjit - Complete x86 x64 JIT Assembler for C++.pdf
htdvul
 
PhD Presentation
PhD PresentationPhD Presentation
PhD Presentation
mskayed
 
Impressive Slideshow without Presentation Software
Impressive Slideshow without Presentation SoftwareImpressive Slideshow without Presentation Software
Impressive Slideshow without Presentation Software
kmaeda
 

Similar a Using the Meta-Environment for Model-Driven Engineering (20)

Managed Compiler
Managed CompilerManaged Compiler
Managed Compiler
 
4. features of .net
4. features of .net4. features of .net
4. features of .net
 
PHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy codePHP modernization approach generating KDM models from PHP legacy code
PHP modernization approach generating KDM models from PHP legacy code
 
FME 2020 Unleashed: Authoring
FME 2020 Unleashed: AuthoringFME 2020 Unleashed: Authoring
FME 2020 Unleashed: Authoring
 
ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 
What's New in MDT?
What's New in MDT?What's New in MDT?
What's New in MDT?
 
QVT & MTL In Eclipse
QVT & MTL In EclipseQVT & MTL In Eclipse
QVT & MTL In Eclipse
 
IBM Rational software
IBM Rational softwareIBM Rational software
IBM Rational software
 
Understanding Meteor Stack
Understanding Meteor StackUnderstanding Meteor Stack
Understanding Meteor Stack
 
Semi structure data extraction
Semi structure data extractionSemi structure data extraction
Semi structure data extraction
 
Migrating a .NET application to Go
Migrating a .NET application to GoMigrating a .NET application to Go
Migrating a .NET application to Go
 
DSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java ProjectDSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java Project
 
asmjit - Complete x86 x64 JIT Assembler for C++.pdf
asmjit - Complete x86 x64 JIT Assembler for C++.pdfasmjit - Complete x86 x64 JIT Assembler for C++.pdf
asmjit - Complete x86 x64 JIT Assembler for C++.pdf
 
PhD Presentation
PhD PresentationPhD Presentation
PhD Presentation
 
Scalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduceScalable Algorithm Design with MapReduce
Scalable Algorithm Design with MapReduce
 
Impressive Slideshow without Presentation Software
Impressive Slideshow without Presentation SoftwareImpressive Slideshow without Presentation Software
Impressive Slideshow without Presentation Software
 
Introduction to Visual Studio.NET
Introduction to Visual Studio.NETIntroduction to Visual Studio.NET
Introduction to Visual Studio.NET
 
O Matrix Overview
O Matrix OverviewO Matrix Overview
O Matrix Overview
 
Dotnet Frameworks Version History
Dotnet Frameworks Version HistoryDotnet Frameworks Version History
Dotnet Frameworks Version History
 
LAS16-112: mbed OS Technical Overview
LAS16-112: mbed OS Technical OverviewLAS16-112: mbed OS Technical Overview
LAS16-112: mbed OS Technical Overview
 

Más de ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Más de ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Using the Meta-Environment for Model-Driven Engineering

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