SlideShare a Scribd company logo
1 of 19
Made available under EPL 1.0
Yet Another Three QVT Languages
Edward Willink, Willink Transformations Ltd
Horacio Hoyos, The University of York
Dimitris Kolovos, The University of York
ICMT 2013, Budapest
18th June 2013
18-June-2013 Yet Another Three QVT Languages 2Made available under EPL 1.0
QVT History
Models are good
Model Transformation must be good
OMG: Need a standard
2002 RFP: Request for Proposal
QVT: Query/View/Transformation standard
2003 Competing Proposals - 8 then 7
2004,5 Merged Proposal => 3 languages
2007 QVT 1.0 Standard
2011 QVT 1.1 Standard - minor fixes
18-June-2013 Yet Another Three QVT Languages 3Made available under EPL 1.0
QVTo - QVT Operational Mappings
Operational/Imperative paradigm
SmartQVT from France Telecom
mature since 2008
Eclipse QVT Operation Project (from Borland)
stagnated in 2009
moving again since 2012
48 fixes in Kepler (June 26 2013)
18-June-2013 Yet Another Three QVT Languages 4Made available under EPL 1.0
QVTr - QVT Relational
Powerful, multi-directional Declarative paradigm
Medini QVT (from ikv++ technologies)
mature since 2011
disappointing performance
ModelMorf (from Tata)
only Beta releases in public domain
Eclipse QVT Declarative Project
models, parsers, editors
no execution
18-June-2013 Yet Another Three QVT Languages 5Made available under EPL 1.0
QVTc - QVT Core
Simpler, multi-directional Declarative paradigm
Eclipse QVT Declarative Project
models, parsers, editors
no execution
18-June-2013 Yet Another Three QVT Languages 6Made available under EPL 1.0
Three more QVTs
Direct QVTr implementation too hard
Break problem into smaller parts
Progressive program-to-program transformation
Exploit Eclipse OCL VM and Java code generator
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
18-June-2013 Yet Another Three QVT Languages 7Made available under EPL 1.0
QVTr to QVTc
'Provided' by the QVT specification
single pass, hard to read
many syntax errors, never exercised
requires a working QVTr tool to convert QVTr
re-implement in QVTc
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
18-June-2013 Yet Another Three QVT Languages 8Made available under EPL 1.0
QVTc to QVTu
Multi-directional powerful for specification
powerful specification capability
unhelpful implementation of actual user requirement
QVTu - Unidirectional subset of QVTc
QVTc to QVTu - discard multi-directional bloat
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
18-June-2013 Yet Another Three QVT Languages 9Made available under EPL 1.0
QVTu to QVTm
Normal forms more powerful for optimization
powerful specification capability
unhelpful implementation of actual user requirement
QVTm - Minimal declarative subset of QVTc
QVTu to QVTm - discard syntax sugar (eg refinement)
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
18-June-2013 Yet Another Three QVT Languages 10Made available under EPL 1.0
QVTm to QVTi
Declarative semantics inappropriate for implementation
introduce imperative search schedule
exploit metamodel
QVTi - Imperative variant subset of QVTc
QVTm to QVTi - synthesize an execution schedule
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
18-June-2013 Yet Another Three QVT Languages 11Made available under EPL 1.0
QVTi + OCL to Java
OCL
powerful side-effect free model evaluation
QVTi
disciplined model mutation, schedule
reuse OCL interpreter (and debugger)
reuse OCL to Java code generator
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
18-June-2013 Yet Another Three QVT Languages 12Made available under EPL 1.0
QVTi enhancements
QVT Declarative (Core/Relational)
Declarative rule matching
QVT Imperative
Explicit Mapping Call with bindings
map NestedMapping {
guardPatternVariable1 <= collectionOfBindings;
guardPatternVariable2 := explicitBinding;
}
18-June-2013 Yet Another Three QVT Languages 13Made available under EPL 1.0
QVTi Preliminary Performance
18-June-2013 Yet Another Three QVT Languages 14Made available under EPL 1.0
Demonstration / Poster
Eclipse QVT Declarative Project
Kepler release (June 26 2013)
QVTr Xtext editor/parser
QVTc Xtext editor/parser
QVTi Xtext editor/parser
QVTr -> QVTc -> QVTm -> QVTi (Luna)
QVTi interpreter
QVTi to Java code generator
QVTi debugger (Luna)
18-June-2013 Yet Another Three QVT Languages 15Made available under EPL 1.0
QVTu Opportunities
Interchange point for alternative declarative syntaxes
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
ATL ETL
18-June-2013 Yet Another Three QVT Languages 16Made available under EPL 1.0
QVTm Opportunities
Normalized form
composition of multiple transformations
variety of declarative languages
optimization of the composition
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
composition
18-June-2013 Yet Another Three QVT Languages 17Made available under EPL 1.0
QVTi Opportunities
Interchange point for alterative imperative syntaxes
Legacy rescue of imperative transformations
exploit composition of declarative transformations
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
legacy rescue QVTo
18-June-2013 Yet Another Three QVT Languages 18Made available under EPL 1.0
Shared tool chain
New transformation language
leverage interpreter/debugger/optimizers/composers
Better debugger
reuseable by many languages
VMNew Intermediate LanguagesQVT Declarative
QVTr QVTc QVTuQVTc QVTm QVTi
OCL
UML
QVTi + Java
Interpreters/DebuggersOptimizers/Composers/RescuersEditors
18-June-2013 Yet Another Three QVT Languages 19Made available under EPL 1.0
Summary
Eclipse QVT Declarative moving at last
QVTc/QVTr editors in Helios (2010)
QVTi execution in Kepler (2013)
QVTi code generation in Kepler (2013)
20 times speed up
QVTr execution targeted for Luna (2014)
QVTi/c/r debugger targeted for Luna (2014)
Eclipse QVT Operational moving again
Xtext editor targeted for Luna (2014)
alignment with QVTd and OCL projects

More Related Content

Viewers also liked

SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
Pascal Roques
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
Pascal Roques
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practice
bharati k
 
mis
mismis
mis
ISIG
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
Korteby Farouk
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
bharati k
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
ISIG
 

Viewers also liked (20)

OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
OCCIware Contribution to the EU consultation on Cloud Computing Research Inno...
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in France
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0
 
The OCLforUML Profile
The OCLforUML ProfileThe OCLforUML Profile
The OCLforUML Profile
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris.
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification Status
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practice
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc results
 
Timing verification of automotive communication architecture using quantile ...
Timing verification of automotive communication  architecture using quantile ...Timing verification of automotive communication  architecture using quantile ...
Timing verification of automotive communication architecture using quantile ...
 
mis
mismis
mis
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
 
OCCIware
OCCIwareOCCIware
OCCIware
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 

Similar to Yet Another Three QVT Languages

fudcon-fedora-arm-iot-rajeshsola
fudcon-fedora-arm-iot-rajeshsolafudcon-fedora-arm-iot-rajeshsola
fudcon-fedora-arm-iot-rajeshsola
Rajesh Sola
 
Qtpvbscripttrainings
QtpvbscripttrainingsQtpvbscripttrainings
Qtpvbscripttrainings
Ramu Palanki
 
Process Synchronisation Operating System
Process Synchronisation Operating SystemProcess Synchronisation Operating System
Process Synchronisation Operating System
DRAnithaSofiaLizCSES
 
Qtp interview questions_1
Qtp interview questions_1Qtp interview questions_1
Qtp interview questions_1
Ramu Palanki
 
FiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageFiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition Language
Anton Kolotaev
 

Similar to Yet Another Three QVT Languages (20)

QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?QVT Traceability: What does it really mean?
QVT Traceability: What does it really mean?
 
fudcon-fedora-arm-iot-rajeshsola
fudcon-fedora-arm-iot-rajeshsolafudcon-fedora-arm-iot-rajeshsola
fudcon-fedora-arm-iot-rajeshsola
 
Getting started with IOT Development using Fedora on ARM
Getting started with IOT Development using Fedora on ARMGetting started with IOT Development using Fedora on ARM
Getting started with IOT Development using Fedora on ARM
 
Qtpvbscripttrainings
QtpvbscripttrainingsQtpvbscripttrainings
Qtpvbscripttrainings
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT Extension
 
QVT & MTL In Eclipse
QVT & MTL In EclipseQVT & MTL In Eclipse
QVT & MTL In Eclipse
 
QTP 10 00 Guide
QTP 10 00 GuideQTP 10 00 Guide
QTP 10 00 Guide
 
05-Process-Synchronization.pdf
05-Process-Synchronization.pdf05-Process-Synchronization.pdf
05-Process-Synchronization.pdf
 
Process Synchronisation Operating System
Process Synchronisation Operating SystemProcess Synchronisation Operating System
Process Synchronisation Operating System
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key concepts
 
GNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsGNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore Insights
 
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik HarabiEclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in Depth
 
Checking the Qt 5 Framework
Checking the Qt 5 FrameworkChecking the Qt 5 Framework
Checking the Qt 5 Framework
 
QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)
 
HPC on Cloud for SMEs. The case of bolt tightening.
HPC on Cloud for SMEs. The case of bolt tightening.HPC on Cloud for SMEs. The case of bolt tightening.
HPC on Cloud for SMEs. The case of bolt tightening.
 
Qtp interview questions_1
Qtp interview questions_1Qtp interview questions_1
Qtp interview questions_1
 
FiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition LanguageFiQuant Market Microstructure Simulator: Strategy Definition Language
FiQuant Market Microstructure Simulator: Strategy Definition Language
 
HKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateHKG15-110: ODP Project Update
HKG15-110: ODP Project Update
 
Know your R usage workflow to handle reproducibility challenges
Know your R usage workflow to handle reproducibility challengesKnow your R usage workflow to handle reproducibility challenges
Know your R usage workflow to handle reproducibility challenges
 

More from Edward Willink

More from Edward Willink (20)

An OCL Map Type
An OCL Map TypeAn OCL Map Type
An OCL Map Type
 
OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality Check
 
OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and Prospective
 
A text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2TA text model - Use your favourite M2M for M2T
A text model - Use your favourite M2M for M2T
 
Shadow Objects
Shadow ObjectsShadow Objects
Shadow Objects
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit Operators
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL Collections
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of Computation
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL Debugger
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCL
 
OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)OCL 2.4. (... 2.5)
OCL 2.4. (... 2.5)
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code Generation
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger Picture
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast Queries
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 

Recently uploaded

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
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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
 

Yet Another Three QVT Languages

  • 1. Made available under EPL 1.0 Yet Another Three QVT Languages Edward Willink, Willink Transformations Ltd Horacio Hoyos, The University of York Dimitris Kolovos, The University of York ICMT 2013, Budapest 18th June 2013
  • 2. 18-June-2013 Yet Another Three QVT Languages 2Made available under EPL 1.0 QVT History Models are good Model Transformation must be good OMG: Need a standard 2002 RFP: Request for Proposal QVT: Query/View/Transformation standard 2003 Competing Proposals - 8 then 7 2004,5 Merged Proposal => 3 languages 2007 QVT 1.0 Standard 2011 QVT 1.1 Standard - minor fixes
  • 3. 18-June-2013 Yet Another Three QVT Languages 3Made available under EPL 1.0 QVTo - QVT Operational Mappings Operational/Imperative paradigm SmartQVT from France Telecom mature since 2008 Eclipse QVT Operation Project (from Borland) stagnated in 2009 moving again since 2012 48 fixes in Kepler (June 26 2013)
  • 4. 18-June-2013 Yet Another Three QVT Languages 4Made available under EPL 1.0 QVTr - QVT Relational Powerful, multi-directional Declarative paradigm Medini QVT (from ikv++ technologies) mature since 2011 disappointing performance ModelMorf (from Tata) only Beta releases in public domain Eclipse QVT Declarative Project models, parsers, editors no execution
  • 5. 18-June-2013 Yet Another Three QVT Languages 5Made available under EPL 1.0 QVTc - QVT Core Simpler, multi-directional Declarative paradigm Eclipse QVT Declarative Project models, parsers, editors no execution
  • 6. 18-June-2013 Yet Another Three QVT Languages 6Made available under EPL 1.0 Three more QVTs Direct QVTr implementation too hard Break problem into smaller parts Progressive program-to-program transformation Exploit Eclipse OCL VM and Java code generator VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java
  • 7. 18-June-2013 Yet Another Three QVT Languages 7Made available under EPL 1.0 QVTr to QVTc 'Provided' by the QVT specification single pass, hard to read many syntax errors, never exercised requires a working QVTr tool to convert QVTr re-implement in QVTc VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java
  • 8. 18-June-2013 Yet Another Three QVT Languages 8Made available under EPL 1.0 QVTc to QVTu Multi-directional powerful for specification powerful specification capability unhelpful implementation of actual user requirement QVTu - Unidirectional subset of QVTc QVTc to QVTu - discard multi-directional bloat VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java
  • 9. 18-June-2013 Yet Another Three QVT Languages 9Made available under EPL 1.0 QVTu to QVTm Normal forms more powerful for optimization powerful specification capability unhelpful implementation of actual user requirement QVTm - Minimal declarative subset of QVTc QVTu to QVTm - discard syntax sugar (eg refinement) VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java
  • 10. 18-June-2013 Yet Another Three QVT Languages 10Made available under EPL 1.0 QVTm to QVTi Declarative semantics inappropriate for implementation introduce imperative search schedule exploit metamodel QVTi - Imperative variant subset of QVTc QVTm to QVTi - synthesize an execution schedule VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java
  • 11. 18-June-2013 Yet Another Three QVT Languages 11Made available under EPL 1.0 QVTi + OCL to Java OCL powerful side-effect free model evaluation QVTi disciplined model mutation, schedule reuse OCL interpreter (and debugger) reuse OCL to Java code generator VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java
  • 12. 18-June-2013 Yet Another Three QVT Languages 12Made available under EPL 1.0 QVTi enhancements QVT Declarative (Core/Relational) Declarative rule matching QVT Imperative Explicit Mapping Call with bindings map NestedMapping { guardPatternVariable1 <= collectionOfBindings; guardPatternVariable2 := explicitBinding; }
  • 13. 18-June-2013 Yet Another Three QVT Languages 13Made available under EPL 1.0 QVTi Preliminary Performance
  • 14. 18-June-2013 Yet Another Three QVT Languages 14Made available under EPL 1.0 Demonstration / Poster Eclipse QVT Declarative Project Kepler release (June 26 2013) QVTr Xtext editor/parser QVTc Xtext editor/parser QVTi Xtext editor/parser QVTr -> QVTc -> QVTm -> QVTi (Luna) QVTi interpreter QVTi to Java code generator QVTi debugger (Luna)
  • 15. 18-June-2013 Yet Another Three QVT Languages 15Made available under EPL 1.0 QVTu Opportunities Interchange point for alternative declarative syntaxes VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java ATL ETL
  • 16. 18-June-2013 Yet Another Three QVT Languages 16Made available under EPL 1.0 QVTm Opportunities Normalized form composition of multiple transformations variety of declarative languages optimization of the composition VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java composition
  • 17. 18-June-2013 Yet Another Three QVT Languages 17Made available under EPL 1.0 QVTi Opportunities Interchange point for alterative imperative syntaxes Legacy rescue of imperative transformations exploit composition of declarative transformations VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java legacy rescue QVTo
  • 18. 18-June-2013 Yet Another Three QVT Languages 18Made available under EPL 1.0 Shared tool chain New transformation language leverage interpreter/debugger/optimizers/composers Better debugger reuseable by many languages VMNew Intermediate LanguagesQVT Declarative QVTr QVTc QVTuQVTc QVTm QVTi OCL UML QVTi + Java Interpreters/DebuggersOptimizers/Composers/RescuersEditors
  • 19. 18-June-2013 Yet Another Three QVT Languages 19Made available under EPL 1.0 Summary Eclipse QVT Declarative moving at last QVTc/QVTr editors in Helios (2010) QVTi execution in Kepler (2013) QVTi code generation in Kepler (2013) 20 times speed up QVTr execution targeted for Luna (2014) QVTi/c/r debugger targeted for Luna (2014) Eclipse QVT Operational moving again Xtext editor targeted for Luna (2014) alignment with QVTd and OCL projects