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

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...OCCIware
 
SysML adoption in France
SysML adoption in FranceSysML adoption in France
SysML adoption in FrancePascal Roques
 
Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Prfc rhapsody simulation_1.0
Prfc rhapsody simulation_1.0Pascal Roques
 
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. OCCIware
 
OCL Specification Status
OCL Specification StatusOCL Specification Status
OCL Specification StatusEdward Willink
 
La &amp; edm in practice
La &amp; edm in practiceLa &amp; edm in practice
La &amp; edm in practicebharati k
 
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 resultsEdward Willink
 
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 ...RealTime-at-Work (RTaW)
 
mis
mismis
misISIG
 
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 ProjectsJordi Cabot
 
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 enoughRealTime-at-Work (RTaW)
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governancebharati k
 
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...OCCIware
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard LibraryEdward Willink
 
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éesISIG
 

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

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?Edward Willink
 
fudcon-fedora-arm-iot-rajeshsola
fudcon-fedora-arm-iot-rajeshsolafudcon-fedora-arm-iot-rajeshsola
fudcon-fedora-arm-iot-rajeshsolaRajesh Sola
 
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 ARMRajesh Sola
 
Qtpvbscripttrainings
QtpvbscripttrainingsQtpvbscripttrainings
QtpvbscripttrainingsRamu Palanki
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionSensorUp
 
QTP 10 00 Guide
QTP 10 00 GuideQTP 10 00 Guide
QTP 10 00 GuideG.C Reddy
 
05-Process-Synchronization.pdf
05-Process-Synchronization.pdf05-Process-Synchronization.pdf
05-Process-Synchronization.pdfmilisjojo
 
Process Synchronisation Operating System
Process Synchronisation Operating SystemProcess Synchronisation Operating System
Process Synchronisation Operating SystemDRAnithaSofiaLizCSES
 
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 conceptsICS
 
GNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsGNAT Pro User Day: AdaCore Insights
GNAT Pro User Day: AdaCore InsightsAdaCore
 
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 HarabiRafik HARABI
 
Functest in Depth
Functest in DepthFunctest in Depth
Functest in DepthOPNFV
 
Checking the Qt 5 Framework
Checking the Qt 5 FrameworkChecking the Qt 5 Framework
Checking the Qt 5 FrameworkAndrey Karpov
 
QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)QT 프로그래밍 기초(basic of QT programming tutorial)
QT 프로그래밍 기초(basic of QT programming tutorial)Hansol Kang
 
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.Andrés Gómez
 
Qtp interview questions_1
Qtp interview questions_1Qtp interview questions_1
Qtp interview questions_1Ramu 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 LanguageAnton Kolotaev
 
HKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateHKG15-110: ODP Project Update
HKG15-110: ODP Project UpdateLinaro
 
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 challengesWit Jakuczun
 

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

OCL Visualization A Reality Check
OCL Visualization A Reality CheckOCL Visualization A Reality Check
OCL Visualization A Reality CheckEdward Willink
 
OCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveOCL 2019 Keynote Retrospective and Prospective
OCL 2019 Keynote Retrospective and ProspectiveEdward Willink
 
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 M2TEdward Willink
 
Commutative Short Circuit Operators
Commutative Short Circuit OperatorsCommutative Short Circuit Operators
Commutative Short Circuit OperatorsEdward Willink
 
Deterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsDeterministic Lazy Mutable OCL Collections
Deterministic Lazy Mutable OCL CollectionsEdward Willink
 
The Micromapping Model of Computation
The Micromapping Model of ComputationThe Micromapping Model of Computation
The Micromapping Model of ComputationEdward Willink
 
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...Edward Willink
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of OppositesEdward Willink
 
At Last an OCL Debugger
At Last an OCL DebuggerAt Last an OCL Debugger
At Last an OCL DebuggerEdward Willink
 
Safe navigation in OCL
Safe navigation in OCLSafe navigation in OCL
Safe navigation in OCLEdward Willink
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEdward Willink
 
OCL Integration and Code Generation
OCL Integration and Code GenerationOCL Integration and Code Generation
OCL Integration and Code GenerationEdward Willink
 
OCL - The Bigger Picture
OCL - The Bigger PictureOCL - The Bigger Picture
OCL - The Bigger PictureEdward Willink
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesEdward 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

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
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...DianaGray10
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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 FresherRemote DBA Services
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 

Recently uploaded (20)

WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
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
 
+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...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

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