Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Edelta ece2017


Published on

Edelta demo at EclipseCon 2017 Modeling Symposium

Published in: Software
  • Be the first to comment

  • Be the first to like this

Edelta ece2017

  1. 1. Edelta: an approach for defining and applying reusable metamodel evolutions and refactorings Lorenzo Bettini - DiSIA, Univ. Florence Davide Di Ruscio - DISIM, Univ. Aquila Ludovico Iovino - Gran Sasso Science Institute, L’Aquila Alfonso Pierantonio - DISIM, Univ. Aquila EclipseCon Europe 2017 – Modeling Symposium
  2. 2. Mastering Metamodel Refactoring ● Operating metamodel refactorings without a dedicated support can be an error-prone task ● There is the need for languages and tools supporting the specification and application of metamodel refactorings in a disciplined way ● The used language should provide at least the following characteristics: – Conciseness and comprehensibility – Integration – Static checks – Refactoring composability – IDE support
  3. 3. Edelta DSL ● Edelta is a DSL for specifying and applying metamodel evolutions and refactorings ● It provides modelers with constructs for specifying atomic evolutions: – additions, deletions and changes ● and to define complex reusable metamodel changes by properly composing already defined ones
  4. 4. Xtext ● popular Eclipse framework for the development of DSLs ● starting from a grammar definition Xtext generates – a parser, – an abstract syntax tree, and – a complete Eclipse IDE support ● editor, ● syntax highlighting, ● code completion, ● error reporting, ● incremental building, etc.
  5. 5. Xbase ● A reusable OO expression language ● That you can embed in your DSLYou get for free: – Syntax for a Java-like expression language – Interoperability with the Java type system ● Xbase type system implements the Java type system ● Access any Java library in your classpath ● Automatic Java code generator ● Debugger!
  6. 6. Xbase: Java-like with less “noise” ● Semicolons optional ● Powerful type inference ● Everything is an expression ● Lambdas ● Extension methods
  7. 7. Example Everything is Statically Type-checked (inferred) Prints: Anderson, John; Smith, John; Anderson, James
  8. 8. DEMO!