| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| #***************************************************************************** | |
| # | |
| # template.php | |
| # | |
| # Author: Freddy Allilaire | |
| # Date: 2005-12-05 | |
| # | |
| # Description: Type your page comments here - these are not sent to the browser | |
| # | |
| # | |
| #**************************************************************************** | |
| # | |
| # Begin: page-specific settings. Change these. | |
| $pageTitle = "ATL Basic Examples and Patterns"; | |
| $pageKeywords = ""; | |
| $pageAuthor = "Freddy Allilaire"; | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = <<<EOHTML | |
| <div id="primaryLinks"> | |
| <h3>Primary Links</h3> | |
| <ul> | |
| <li> | |
| <a id="buttonDownload" href="../../downloads" title="Download"> | |
| <strong>Download</strong> Eclipse Distribution, Update Site, Dropins | |
| </a> | |
| </li> | |
| <li> | |
| <a id="buttonDocumentation" href="../../documentation" title="Documentation"> | |
| <strong>Documentation</strong> Tutorials, Examples, Videos, Reference Documentation | |
| </a> | |
| </li> | |
| <li> | |
| <a id="buttonSupport" href="../../support" title="Support"> | |
| <strong>Support</strong> Bug Tracker, Newsgroup, Support | |
| </a> | |
| </li> | |
| <li> | |
| <a id="buttonInvolved" href="../../developers" title="Getting Involved"> | |
| <strong>Getting Involved</strong> Git, Workspace Setup, Wiki, Committers | |
| </a> | |
| </li> | |
| </ul> | |
| </div> | |
| <div id="midcolumn"> | |
| <p align="justify"> | |
| This section provides a set of basic examples and patterns. | |
| </p> | |
| <hr class="clearer" /> | |
| <div class="homeitem3col" > | |
| <ul> | |
| <li style="list-style:none"> | |
| <table width="100%" cellspacing="0"> | |
| <tr> | |
| <td width="80%"> | |
| <h2><a href="../old/ATLUseCase_Families2Persons.pdf">Families to Persons</a></h2> | |
| </td> | |
| <td width="20%" align="right"> | |
| <b>February 2007</b> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"> | |
| <table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8"> | |
| <tr> | |
| <td valign="top"> | |
| This presentation describes a very simple model transformation example, some kind of ATL "hello world". | |
| <p> | |
| <i>ATL concepts encountered:</i> | |
| Header section, | |
| Helper functions, | |
| Matched rules | |
| </p> | |
| <p> | |
| <i>Additional concepts encountered:</i> | |
| Metamodel and conformance relation, | |
| ATL IDE (ADT) | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="../old/ATLUseCase_Families2Persons.pdf"> | |
| <img style="vertical-align:text-top;" src="/resources/images/presentation.png"/> Presentation Families to Persons | |
| </a> | |
| <br/> | |
| February 2007 | |
| <br/> | |
| by Freddy Allilaire, Frédéric Jouault (INRIA) | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="http://www.eclipse.org/atl/atlTransformations/Families2Persons/Families2Persons.zip"> | |
| <img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Families to Persons | |
| </a> | |
| <br/> | |
| February 2007 | |
| <br/> | |
| by Freddy Allilaire, Frédéric Jouault (INRIA) | |
| </p> | |
| </td> | |
| </tr> | |
| </table> | |
| </td> | |
| </tr> | |
| </table> | |
| </li> | |
| <li style="list-style:none"> | |
| <table width="100%" cellspacing="0"> | |
| <tr> | |
| <td width="80%"> | |
| <h2><a href="article.php?file=Tree2List/index.html">Tree to List</a></h2> | |
| </td> | |
| <td width="20%" align="right"> | |
| <b>July 2007</b> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"> | |
| <table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8"> | |
| <tr> | |
| <td valign="top"> | |
| This transformation presents a basic example where a tree is transformed into a list. This kind of transformation is usually made by an | |
| imperative Depth First Traversal algorithm. | |
| <p> | |
| <i>ATL concepts encountered:</i> | |
| Matched rules (one with a guard), | |
| Helper functions (one being recursive), | |
| Collection related functions, | |
| Enumeration, and | |
| ATL resolve algorithm. | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="article.php?file=Tree2List/index.html"> | |
| <img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article Tree to List | |
| </a> | |
| <br/> | |
| July 2007 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="http://www.eclipse.org/atl/atlTransformations/Tree2List/Tree2List.zip"> | |
| <img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Tree to List | |
| </a> | |
| <br/> | |
| July 2007 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| </td> | |
| </tr> | |
| </table> | |
| </td> | |
| </tr> | |
| </table> | |
| </li> | |
| <li style="list-style:none"> | |
| <table width="100%" cellspacing="0"> | |
| <tr> | |
| <td width="80%"> | |
| <h2><a href="article.php?file=ListMetamodelRefactoring/index.html">List Metamodel Refactoring</a></h2> | |
| </td> | |
| <td width="20%" align="right"> | |
| <b>December 2007</b> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"> | |
| <table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8"> | |
| <tr> | |
| <td valign="top"> | |
| In this example, we present some basic concepts of ATL through a simple use case. Our working context is the creation of a bridge between | |
| two different versions of a List metamodel (A and B). This bridge consists on an ATL transformation from the version A to the version B. | |
| <p> | |
| <i>ATL concepts encountered:</i> | |
| Automatic traceability support in ATL, Handling collection, and String operation. | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="article.php?file=ListMetamodelRefactoring/index.html"> | |
| <img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article List Metamodel Refactoring | |
| </a> | |
| <br/> | |
| December 2007 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="http://www.eclipse.org/atl/atlTransformations/ListMetamodelRefactoring/ListMetamodelRefactoring.zip"> | |
| <img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code List Metamodel Refactoring | |
| </a> | |
| <br/> | |
| December 2007 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| </td> | |
| </tr> | |
| </table> | |
| </td> | |
| </tr> | |
| </table> | |
| </li> | |
| <li style="list-style:none"> | |
| <table width="100%" cellspacing="0"> | |
| <tr> | |
| <td width="80%"> | |
| <h2><a href="article.php?file=Port/index.html">Port</a></h2> | |
| </td> | |
| <td width="20%" align="right"> | |
| <b>January 2008</b> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"> | |
| <table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8"> | |
| <tr> | |
| <td valign="top"> | |
| In this example, we present some basic concepts of ATL through a simple use case. | |
| This use case deals with situations where the source element meta type could not be simply matched with the target meta type. | |
| The only way to resolve the target meta type is to browse source model. | |
| <p> | |
| <i>ATL concepts encountered:</i> | |
| Matched rules and lazy (matched) rules, Avoiding some imperative constructs, and Code optimization. | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="article.php?file=Port/index.html"> | |
| <img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article Port | |
| </a> | |
| <br/> | |
| January 2008 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="http://www.eclipse.org/atl/atlTransformations/Port/Port.zip"> | |
| <img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Port | |
| </a> | |
| <br/> | |
| January 2008 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| </td> | |
| </tr> | |
| </table> | |
| </td> | |
| </tr> | |
| </table> | |
| </li> | |
| <li style="list-style:none"> | |
| <table width="100%" cellspacing="0"> | |
| <tr> | |
| <td width="80%"> | |
| <h2><a href="article.php?file=SideEffect/index.html">Side Effect</a></h2> | |
| </td> | |
| <td width="20%" align="right"> | |
| <b>January 2008</b> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"> | |
| <table STYLE="border : 1px dotted #000000;" width="100%" cellspacing="0" cellpadding="20" width="100%" bgcolor="#F8F8F8"> | |
| <tr> | |
| <td valign="top"> | |
| This case deals with the way to handle side effects induced while transforming an element. We will start from an imperative algorithm to create a | |
| transformation between two metamodels. This algorithm will introduce a side effect problem. After several iteration a solution will be provided | |
| following ATL philosophy. | |
| <p> | |
| <i>ATL concepts encountered:</i> | |
| ATL imperative parts for dealing with complex situation, and | |
| Chain of ATL transformations to divide transformation complexity and to avoid imperative parts. | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="article.php?file=SideEffect/index.html"> | |
| <img style="vertical-align:text-top;" src="/resources/images/html.png"/> Article Side Effect | |
| </a> | |
| <br/> | |
| January 2008 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| <p style="margin-left:3em;text-indent:-2em;"> | |
| <a href="http://www.eclipse.org/atl/atlTransformations/SideEffect/SideEffect.zip"> | |
| <img style="vertical-align:text-top;" src="/resources/images/code.png"/> Source code Side Effect | |
| </a> | |
| <br/> | |
| January 2008 | |
| <br/> | |
| by Cyril Faure (<a href="http://www.c-s.fr/">C-S</a>), Freddy Allilaire (INRIA) | |
| </p> | |
| </td> | |
| </tr> | |
| </table> | |
| </td> | |
| </tr> | |
| </table> | |
| </li> | |
| </ul> | |
| </div> | |
| <hr class="clearer" /> | |
| </div> | |
| EOHTML; | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |