Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Yet Another Three QVT Languages

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Rational_Acoustics_Smaart
Rational_Acoustics_Smaart
Chargement dans…3
×

Consultez-les par la suite

1 sur 19 Publicité

Plus De Contenu Connexe

Les utilisateurs ont également aimé (20)

Similaire à Yet Another Three QVT Languages (20)

Publicité

Plus par Edward Willink (20)

Plus récents (20)

Publicité

Yet Another Three QVT Languages

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 13. 18-June-2013 Yet Another Three QVT Languages 13Made available under EPL 1.0 QVTi Preliminary Performance
  14. 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. 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. 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. 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. 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. 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

×