Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Acceleo/Presentations

< Acceleo
Revision as of 03:44, 4 April 2011 by Laurent.goubet.obeo.fr (Talk | contribs) (Undoing April fool's changes)

Acceleo-presentations-banner.jpg

Acceleo Presentations

a Real Standard Alternative for Code Generation Eclipse MTL : a Real Standard Alternative for Code Generation
The Eclipse M2T project aims at developing Model To Text tools and reducing the duplicate effort involved in template languages development. Currently, there are three languages components within M2T : JET, Xpand and MTL being the OMG MOF Model to Text implementation. MTL is using OCL for model navigation and query. MTL can generate any technology (Java, C, J2EE frameworks, Php) and with a "production ready" release planned for galileo, MTL is right away a real standard alternative for code generation. Being a community based project, Eclipse MTL puts forward a think tank discussion about specification, implementation and gather overall thoughts on how to provide a long term and successful communication channel between the MTL project and the OMG representatives. The team is composed of the Acceleo's code generator creators and contributors of the MOF 2 Text and QVT-R OMG specifications. The team reuses its knowledge to build an examplary implementation of the OMG standard. We want to be as close as possible to the specification knowing that the understanding of a specification may not always be unique. During this talk, we'll present the Galileo release of the component and its features (Standalone generator engine, full featured editors, live code preview) through businesses examples.

This presentation has been realized by Jonathan Musset during EclipseCon 2009.


From Acceleo.org to Eclipse Modeling From Acceleo.org to Eclipse Modeling
Acceleo.org was created many years ago outside of Eclipse... We created a real open source community around this Code Generation tool, with a public repository, a website, a wiki, a mailing list, a newsgroup, and an aggregation of blogs like the planet Eclipse one. Acceleo project won the Eclipse Award in the category "Best Open Source Eclipse-Based Developer Tool" rewarding several years of work of the Acceleo community to produce one of the best tool for model driven development.

As the time goes, the Team has been more and more convinced that the MOF Model To Text OMG specification was the way to go for the project and as we started to code we decided to move within the Eclipse M2T project changing the syntax to conform to the standard but keeping the spirit and pragmatism we had for Acceleo.org. We had our first stable release for the Galileo train, are planning to maintain the Acceleo.org implementation for years but the next generation Acceleo will be perfectly ready for the next Eclipse simultaneous release (Helios).

We are confident that the Acceleo community is gaining value from moving to a self hosted project to an Eclipse one, and that end users will follow the transfert from Acceleo.org to Eclipse.org but such a move has impacts, both from a technical and community point of view : this talk will focus on those impacts, describing the change between both projects and providing experience feedback : Why did the project moved? How? What are the benefits for the Acceleo community and for the modeling project? What have been the community constraints? How to handle, technically, this kind of move ? What does moving to an OMG standard implementation mean for the users ?

This talk will tackle all those issues while demonstrating changes through demos.

This presentation has been realized by Cedric Brun during Eclipse Summit Europe 2009.


Acceleo Code Generation - Let's start with an Android example and Acceleo at Eclipse Modeling Runaway 2010 Acceleo Code Generation - Let's start with an Android example
Acceleo is a pragmatic implementation of the OMG* standard for code generation called MTL*. Still in incubation state, we plan to have Acceleo graduate for the next Eclipse simultaneous release (Helios).

Being an expert at code generation or Acceleo is not necessary to get started on your first code generator : using the Acceleo editor and the powerful features it exposes (completion, syntax highlighting, on-the-fly compilation, quick outline, ...), it is very easy to get started once you understand the most basic principles.

This talk presents both the MTL language and the Acceleo Development Toolkit which is provided in the M2T project. Beginners will learn what code generation, M2T, and Acceleo are, as well as how to use them on a concrete case-study. Acceleo addicts will discover the new standard syntax, new functionalities and techniques. We will give you enough of the basics to create your own code generation for a specific target system. We have chosen the Android platform as a target to show that we can also use Acceleo for mobile software.

Here is the talk agenda :

  • Acceleo : What's that new code generation engine?
  • Create an Android prototype and its corresponding model
  • Initialize your code generation project from the prototype
  • Editing your code generation file to make the Android prototype run
  • Launching your code generation on another model example
  • Packaging as an eclipse plug-in and for standalone usage
  • Create new Android applications in few clicks
  • How to override a specific behavior in the target environment
  • On the developer side : How to make your own extensions with Acceleo?

We'll end the talk with other complex code generation examples made with Acceleo : EEF, UML to Java, Ecore to python, Migrating from a language to another...

This presentation has been realized by Jonathan Musset during EclipseCon 2010.


Creating a Language for Android Apps with Eclipse Modeling Creating a Language for Android Apps with Eclipse Modeling
As in many modern platforms, programming Android apps requires a mixture of several languages. For example, an Android Activity has a declarative XML part and a behavioral Java part. To make Activity a cross-language abstraction, you usually use an Android-specific IDE that ensures that both parts are in sync, yet such an IDE will usually not allow you to introduce your own abstractions.

A solution to this problem is to define your abstractions in a separate language and compile that language to Android-specific artifacts. While that sounds rather complicated, the Eclipse Modeling Project offers a plethora of frameworks and tools that make it easily possible.

In this tutorial, you will create working Android applications using Eclipse modeling techniques. This talk will start with a short presentation of Android and its development tools. Then you will learn how to define your own abstractions using EMF Ecore and how to create a language and an editor for these with Xtext. Finally, we will implement a generator that creates the Java and XML source code of the Android application with the help of Acceleo. We will demonstrate how these ingredients integrate into the Eclipse workbench just like Java and XML do.

Tutorial Plan

  • Introduction to Android (15min)
  • The Demo Application (20min)
  • Creation of a Programming Language With Xtext (1h35)
  • Break (20min)
  • Creation of a code generator for Android with Acceleo (1h35)

This presentation has been realized by Mikaël Barbero and Stephane Begaudeau for Obeo in collaboration with Holger Schill and Jan Koehnlein for itemis AG during Eclipse Summit Europe 2010.



Acceleo Portal
Project Project · Installation
Features Acceleo Features · Runtime · Acceleo editor · Views & Perspective · Interpreter · Maven
User documentation Getting Started · User Guide · Acceleo operations reference · OCL operations reference · Text Production Rules · Migration From Acceleo 2.x · Best Practices · Videos · FAQ
Developer documentation Source code · How to contribute · Compatibility · MOFM2T specification · OCL specification
Community Professional Support · Report a bug

Back to the top