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

Difference between revisions of "Acceleo"

m (Acceleo header template used.)
 
(46 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Acceleo-Header{{{watch|}}} | title=Acceleo
+
{{Acceleo-Header{{{watch|}}} | title=Acceleo Portal
|editpage=http://wiki.eclipse.org/Acceleo
+
|editpage=Acceleo
 
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
 
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
 
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
 
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
|titlebackground=#82D982 <!-- H120 S40 V85 the color of the Box Section Title Bar -->
+
|titlebackground=#009270 <!-- H120 S40 V85 the color of the Box Section Title Bar -->
 
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
 
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
 
|foreground=black}}      <!-- This is the color of the Box Section text -->
 
|foreground=black}}      <!-- This is the color of the Box Section text -->
  
[http://www.eclipse.org/acceleo Acceleo 3.0] is a pragmatic implementation of the [http://www.omg.org/spec/MOFM2T/1.0/ OMG Model-to-text specification]. It supports the developer with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT ... Acceleo also has a unique tooling around example-based design of code generators.
+
[[Image:Acceleo.png|center]]
  
== Introduction ==
+
{{Acceleo-Header{{{watch|}}} | title=Presentation
 +
|editpage=Acceleo
 +
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
 +
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
 +
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
 +
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
 +
|foreground=black}}      <!-- This is the color of the Box Section text -->
 +
[http://www.eclipse.org/acceleo Acceleo 3] is a code generator implementing of the [http://www.omg.org/spec/MOFM2T/1.0/ OMG's Model-to-text specification]. It supports the developer with most of the [[Acceleo/Features|features]] that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT... Acceleo help the developer to handle the lifecycle of its code generators. Thanks to a prototype based approach, you can quickly and easily create your first generator from the source code of an existing prototype, then with all the features of the Acceleo tooling like the [[Acceleo/Acceleo_Editor#Refactoring|refactoring tools]] you will easily improve your generator to realize a full fledged code generator.
 +
{{Acceleo-footer}}
  
The Acceleo Project (previously named MTL) is an open source component under the Eclipse Modelling / Model To Text
+
<div style="float:left; width:54.5%;">
(M2T) project [1]. Its primary goal is to provide an implementation of the MOF Model To Text OMG
+
{{Acceleo-Header{{{watch|}}} | title=The Acceleo Project
standard [2].
+
|editpage=Acceleo
 
+
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
<p>You do not need to be an expert to start using the plug-ins:
+
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
using the provided example projects and the powerful completion
+
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
feature of the Acceleo editor, it is very easy to get started once you
+
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
understand the basic principles.</p>
+
|foreground=black}}      <!-- This is the color of the Box Section text -->
 
+
[[Image:Logo obeo.png|left|Obeo|100px]]Acceleo is an Eclipse based product created and developed by the Eclipse Strategic Member [http://www.obeo.fr/index.php?lang=en Obeo]. It is included in the Eclipse release train since Eclipse 3.6 Helios.
<p>If you don't know anything about Acceleo, you can start with a little demo
+
{{Acceleo-footer}}
[http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm Acceleo at Eclipse Modeling Runaway 2010]
+
</p>
+
  
<p>Concerning the language, almost all of the OMG specification keywords are supported
+
{{Acceleo-Header{{{watch|}}} | title=History
(those marked with an asterisk are not fully supported yet):</p>
+
|editpage=Acceleo
<pre class="literal-block">
+
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
module, import, extends, template, query, public, private, protected, guard, init,
+
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
overrides, each, before, after, for, if, elseif, else, let, elselet, trace*, macro*,
+
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
file, mode, text_explicit*, code_explicit*, super, stdout
+
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
</pre>
+
|foreground=black}}      <!-- This is the color of the Box Section text -->
<p>For all the details about these keywords and the [http://en.wikipedia.org/wiki/Meta-Object_Facility MOF] Model to Text Language in
+
Acceleo.org was created in 2005, and 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. We started to code a reference implementation for the standard within the Eclipse M2T project. We have managed to provide nice tooling, simple syntax and efficient code generation with all the pragmatism we had about Acceleo.org. There aren't a lot of differences between the old version of acceleo and the new one.
general, you can consult the official MTL Specification available at the [http://www.omg.org/ OMG website].</p>
+
<p>Note that a documentation is also available in the Acceleo plugins.</p>
+
 
+
=== From Acceleo.org to Eclipse.org ===
+
Acceleo.org was created 4 years ago, and 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. We started to code a reference implementation for the standard within the Eclipse M2T project. We have managed to provide nice tooling, simple syntax and efficient code generation with all the pragmatism we had about Acceleo.org. There aren't a lot of differences between the old version of acceleo and the new one.
+
 
   
 
   
 
We are confident that the Acceleo community gain 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 as we will provide the same level of functionnalities and we will insure an interoperability between the old syntax and the new syntax (the standard one).
 
We are confident that the Acceleo community gain 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 as we will provide the same level of functionnalities and we will insure an interoperability between the old syntax and the new syntax (the standard one).
 
   
 
   
The Acceleo Team will continue to maintain the old syntax of Acceleo outside of eclipse (www.acceleo.org ) during some few years, but the new versions and the new features will take place on Eclipse.org. In the next release you'll have an automated tooling helping you to migrate your templates from a syntax to another.
+
The Acceleo Team will continue to maintain the old syntax of Acceleo outside of eclipse (www.acceleo.org ) for a couple of years, but the new versions and the new features will take place on Eclipse.org. In the next release you'll have an automated tooling helping you to migrate your templates from a syntax to another.
 
   
 
   
 
For Acceleo lover, you will find in Eclipse Acceleo everything you have loved in the Acceleo.org version and more (the standard compliance with more documentation).
 
For Acceleo lover, you will find in Eclipse Acceleo everything you have loved in the Acceleo.org version and more (the standard compliance with more documentation).
 
This specification is really a good one : http://www.omg.org/spec/MOFM2T/1.0
 
This specification is really a good one : http://www.omg.org/spec/MOFM2T/1.0
+
{{Acceleo-footer}}
For Helios, this is the first time we plan to graduate under Eclipse. We also plan to grow the version number from 0.9.0 to 3.0.0 because
+
the last release of Acceleo outside of Eclipse was the 2.7.0 version (Acceleo.org). We are also in the process of transferring the community,
+
and for a community point of view, it is clearer to graduate and set the new Eclipse version as 3.0.0.
+
  
=== Short Description ===
+
{{Acceleo-Header{{{watch|}}} | title=Tutorials
Acceleo 3.0 is a pragmatic implementation of the OMG Model-to-text specification. It supports the developper with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT ... Acceleo also has a unique tooling around example-based design of code generators.
+
|editpage=Acceleo
 +
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
 +
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
 +
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
 +
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
 +
|foreground=black}}      <!-- This is the color of the Box Section text -->
 +
On this wiki, you will also find links to Acceleo [[Acceleo/Tutorials|tutorials]] in which beginner will be able to see some concrete use case of code generation and acquire good practices for the realization of Acceleo generators. People already familiar with Acceleo will be able to learn some tricks and to discover the brand new features of the new versions of Acceleo.
 +
{{Acceleo-footer}}
 +
</div>
  
==Documentation==
+
<div style="float:right; width:45%">
The full documentation is included in the Help Content of Eclipse; in your Eclipse, go to Help => Help Contents and navigate to the Acceleo Model To Text section. The very same help is accessible online on the [http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.acceleo.doc/doc/overview.html|Eclipse help center].
+
{{Acceleo-Header{{{watch|}}} | title=Features
 +
|editpage=Acceleo
 +
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
 +
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
 +
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
 +
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
 +
|foreground=black}}      <!-- This is the color of the Box Section text -->
 +
Acceleo has been created with the objective of having the best tooling possible to generate code. As such, Acceleo possess several key features like an editor with syntax highlighting, errors detection, completion, refactoring etc. This editor is coupled with a traceability API which can be leveraged to see the elements from its input models and the region of its generators that have been involved in the generation of a selected element. The features available in Acceleo can be found [[Acceleo/Features|here]]. On this page, you can also find some of the exciting new features that we want to bring in the next release of Acceleo.
 +
{{Acceleo-footer}}
  
==Compatibility==
+
{{Acceleo-Header{{{watch|}}} | title=Documentation
The Acceleo development team does its best to maintain downward compatibility towards Ganymede (Eclipse 3.4). Following is the compatibility chart (Note that there has been no "0.9" version, and Acceleo jumped right up to version 3.0 when graduating, details [http://eclipsemde.blogspot.com/2010/03/acceleo-graduation-version-jumping-and.html here]) :
+
|editpage=Acceleo
{| border="1"
+
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
! Acceleo !! Eclipse 3.4 - EMF 2.4 !! Eclipse 3.5 - EMF 2.5 !! Eclipse 3.6 - EMF 2.6
+
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
|-
+
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
| 0.8
+
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
| style="text-align:center; background:green; color:white" | OK
+
|foreground=black}}      <!-- This is the color of the Box Section text -->
| style="text-align:center; background:green; color:white" | OK
+
Documentation for Acceleo is composed of a [[Acceleo/User_Guide |User Guide]] and the operations reference for the [[Acceleo/Acceleo_Operations_Reference|Acceleo library]] and the [[Acceleo/OCL_Operations_Reference|OCL library]]. The operations reference is also included in the Help Content of Eclipse; in your Eclipse, go to Help => Help Contents and navigate to the Acceleo Model To Text section. The very same help is accessible online on the [https://help.eclipse.org/topic/org.eclipse.acceleo.doc/pages/index.html?cp=5 Eclipse help center].
|
+
The documentation for the Acceleo Query Language (AQL) used with Sirius [https://www.eclipse.org/acceleo/documentation/ is published here]
|-
+
{{Acceleo-footer}}
| 3.0
+
| style="text-align:center; background:green; color:white" | OK
+
| style="text-align:center; background:green; color:white" | OK
+
| style="text-align:center; background:green; color:white" | OK
+
|}
+
An empty cell indicates that the compatibility hasn't been tested for a particular combination.
+
  
===Behavioral changes between versions===
+
{{Acceleo-Header{{{watch|}}} | title=Community
Take note that as new OCL features are enabled in new Eclipse versions, they allow shortcuts or characters in OCL expressions that cause Acceleo templates written within a newer Eclipse to be incompatible (at compilation time) with older Eclipses! In short, modules that compile in a given Eclipse will always compile in subsequent releases, and modules that have been compiled (whatever the version) should be launch-able in any Eclipse.
+
|editpage=Acceleo
 
+
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
* Galileo allows us to properly check the return type of standard library operations; thus "oclAsType" calls that were mandatory in Ganymede aren't in Galileo. Templates making use of this cannot compile within Eclipse 3.4 without re-adding these calls.
+
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
* OCL 1.3 allowed us to activate an option to activate control characters within Acceleo templates. ''\n'', ''\t'', ''\r'', ''\''', ''\"'' and ''\\'' can be used in templates to generate ''linefeed''s, ''horizontal tab''s, ''carriage return''s, ... from Acceleo 3.0 onward. templates containing such characters will generate the '''text \n''' instead of linefeeds in Acceleo < 3.0.
+
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
 
+
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
== Features ==
+
|foreground=black}}      <!-- This is the color of the Box Section text -->
<p>The Acceleo template editor is associated with Acceleo source files (<em>.mtl</em>
+
[[Image:Community.png|left|Community]]
files) and provides all the features of a modern programming editor to
+
Acceleo is an Eclipse based generator but it is also a community, and you can find the Acceleo community on the [[Acceleo/Forums|forums]].
make you more productive when developing code generation modules:</p>
+
{{Acceleo-footer}}
<ul>
+
<li><p class="first">Syntax highlighting</p>
+
</li>
+
<li><p class="first">Smart completion</p>
+
</li>
+
<li><p class="first">Navigation to definitions and references</p>
+
</li>
+
<li><p class="first">Error highlighting</p>
+
</li>
+
<li><p class="first">Dynamic outline</p>
+
</li>
+
<li><p class="first">Code folding</p>
+
</li>
+
</ul>
+
<p>Some of these features are described in details in the Acceleo documentation plugin.</p>
+
  
[[Image:AcceleoCompletion.png]]
+
{{Acceleo-Header{{{watch|}}} | title=Videos and presentations
 
+
|editpage=Acceleo
==User Guide==
+
|border=#A3BFA3          <!-- H120 S15 V75 the color of the borders around Box Sections -->
* [[Acceleo/Installation|Installation]]
+
|titleforeground=black    <!-- This is the color of the Box Section Title Bar text -->
* [[Acceleo/Demonstrations|demonstrations]]
+
|titlebackground=#009270  <!-- H120 S40 V85 the color of the Box Section Title Bar -->
 
+
|background=#F5FFF5      <!-- H120 S4 V100 the color of the Box Section background -->
==Developer Guide==
+
|foreground=black}}      <!-- This is the color of the Box Section text -->
* [[Acceleo/Setup_Environment | Setting up a development environment for Acceleo]]
+
[[Image:Video.png|left|Videos]] You will find on this wiki some [[Acceleo/Videos|videos]] of Acceleo [[Acceleo/Presentations|presentations]] and [[Acceleo/Tutorials|tutorials]] realized by members of the Acceleo dev' team or users of Acceleo. During those videos you will be able to all the features of the new versions of Acceleo and good practices for the realization of code generators. You will also find links to powerpoint or pdf presentation of Acceleo created for Eclipse conferences.
 
+
{{Acceleo-footer}}
==FAQ==
+
</div>
* [[Acceleo/FAQ|Acceleo FAQ]]
+
 
+
==Presentations==
+
 
+
Acceleo at Eclipse Con 2010 : [http://www.eclipsecon.org/2010/sessions/?page=sessions&id=1165 Acceleo Code Generation - Let's start with an Android example] and [http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm Acceleo at Eclipse Modeling Runaway 2010]
+
+
Acceleo at Eclipse Summit Europe 2009 : [http://www.eclipsecon.org/summiteurope2009/sessions?id=971 From Acceleo.org to Eclipse Modeling]
+
+
Acceleo at Eclipse Con 2009 : [http://www.eclipsecon.org/2009/sessions?id=387 a Real Standard Alternative for Code Generation]
+
 
+
== Project Information ==
+
Acceleo is on Ohloh, thus you can access information about the commits, projects news, code metrics... directly on its [https://www.ohloh.net/p/acceleo-eclipse/rss_articles page].
+
 
+
=== New & Noteworthy ===
+
Check the [[Acceleo/New_And_Noteworthy|New And Noteworthy]] page for information on notable evolutions for each version.
+
 
+
=== Release Review ===
+
Check the [[Acceleo/ReleaseReview|Release Review]] page for information on the release review for each version.
+
  
=== API Policy ===
 
Check the [[Acceleo/API_Policy|API Policy]] page for information about Acceleo code aspects : what is considered API, how is API maintained...
 
  
=== Retention Policy ===
+
{{Acceleo-footer}}
Check the [[Acceleo_Retention_Policy|Retention Policy]] page for information about the code and build retention policy applied on Acceleo.
+
  
== Wishlist ==
 
  
In the [[Acceleo/Wishlist|Acceleo wishlist page]], you can find a list of features that have be requested for Acceleo and that are for now not in the roadmap. As such, those features may appear on day in Acceleo but they are not the priority. In someone want to contribute to Acceleo, realizing one of those features is a great start.
+
{{Acceleo-index}}
  
== References ==
+
[[Category:Modeling]]
* [1] Eclipse [http://www.eclipse.org/modeling/m2t/ Model To Text (M2T) project]
+
[[Category:M2T]]
* [2] OMG [http://www.omg.org/spec/MOFM2T/1.0/ MOF Models to Text Transformation] Language Final Adopted Specification
+
[[Category:Acceleo]]

Latest revision as of 06:16, 22 February 2018

Acceleo Portal


Acceleo.png

Presentation

Acceleo 3 is a code generator implementing of the OMG's Model-to-text specification. It supports the developer with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT... Acceleo help the developer to handle the lifecycle of its code generators. Thanks to a prototype based approach, you can quickly and easily create your first generator from the source code of an existing prototype, then with all the features of the Acceleo tooling like the refactoring tools you will easily improve your generator to realize a full fledged code generator.


The Acceleo Project

Obeo
Acceleo is an Eclipse based product created and developed by the Eclipse Strategic Member Obeo. It is included in the Eclipse release train since Eclipse 3.6 Helios.


History

Acceleo.org was created in 2005, and 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. We started to code a reference implementation for the standard within the Eclipse M2T project. We have managed to provide nice tooling, simple syntax and efficient code generation with all the pragmatism we had about Acceleo.org. There aren't a lot of differences between the old version of acceleo and the new one.

We are confident that the Acceleo community gain 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 as we will provide the same level of functionnalities and we will insure an interoperability between the old syntax and the new syntax (the standard one).

The Acceleo Team will continue to maintain the old syntax of Acceleo outside of eclipse (www.acceleo.org ) for a couple of years, but the new versions and the new features will take place on Eclipse.org. In the next release you'll have an automated tooling helping you to migrate your templates from a syntax to another.

For Acceleo lover, you will find in Eclipse Acceleo everything you have loved in the Acceleo.org version and more (the standard compliance with more documentation). This specification is really a good one : http://www.omg.org/spec/MOFM2T/1.0


Tutorials

On this wiki, you will also find links to Acceleo tutorials in which beginner will be able to see some concrete use case of code generation and acquire good practices for the realization of Acceleo generators. People already familiar with Acceleo will be able to learn some tricks and to discover the brand new features of the new versions of Acceleo.

Features

Acceleo has been created with the objective of having the best tooling possible to generate code. As such, Acceleo possess several key features like an editor with syntax highlighting, errors detection, completion, refactoring etc. This editor is coupled with a traceability API which can be leveraged to see the elements from its input models and the region of its generators that have been involved in the generation of a selected element. The features available in Acceleo can be found here. On this page, you can also find some of the exciting new features that we want to bring in the next release of Acceleo.


Documentation

Documentation for Acceleo is composed of a User Guide and the operations reference for the Acceleo library and the OCL library. The operations reference is also included in the Help Content of Eclipse; in your Eclipse, go to Help => Help Contents and navigate to the Acceleo Model To Text section. The very same help is accessible online on the Eclipse help center. The documentation for the Acceleo Query Language (AQL) used with Sirius is published here


Community

Community

Acceleo is an Eclipse based generator but it is also a community, and you can find the Acceleo community on the forums.


Videos and presentations

Videos
You will find on this wiki some videos of Acceleo presentations and tutorials realized by members of the Acceleo dev' team or users of Acceleo. During those videos you will be able to all the features of the new versions of Acceleo and good practices for the realization of code generators. You will also find links to powerpoint or pdf presentation of Acceleo created for Eclipse conferences.




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