Transformation exercises - Exercise 1

Posted by Jesús Fri, 05 Oct 2007 15:38:00 GMT

This post opens a series of transformation exercises intended to learn to write model transformations in the RubyTL transformation language. The exercises will have an incremental difficulty, and each one will try to teach some features of RubyTL or something about model transformations in general.

I will try to publish an exercise each two or three weeks, and I will set a deadline to solve it (usually two weeks). After the deadline, I will publish "my solution" here, so that they can serve as documented model transformation examples.

Of course, the exercises can be solved in other transformation languages, and I will be glad to compare the solutions in several languages.

First exercise: parsing trees
In this exercise a model representing a generic concrete syntax tree is transformed into an abstract syntax tree of a simple language to define data structures.
You will learn to create simple transformation rules, how the binding mechanism works, and how to query the source model.

Your are provided with the problem statement, as well as a project ready to be imported into AGE.
Resources to address the exercise. *The project only works with the last version of RubyTL. So, please, refer to the quick start guide to know how to install the last version.

The deadline for this exercise is October 25. I hope you enjoy solving it.

84 comments

Version 0.3.2 released

Posted by Jesús Wed, 03 Oct 2007 11:20:00 GMT

The new version of AGE, 0.3.2, has been released. It has several bug fixes as well as a complete refactoring of the RubyTL core. Additionally, an update site has been created, so that it is possible to integrate AGE in an existing Eclipse installation (thanks Marcos!).

ChangeLog summary:
  • RubyTL refactoring.
  • New update site: http://gts.inf.um.es/age-updatesite
  • Support for MagicDraw's UML files (including profiles).
  • Embedded DSL to define BNF grammars + a LL(1) parser generator.
Installing from the update site
To install AGE from the update site the EMF plugin is required. The update site has been tested with Eclipse 3.3 and 3.2.

no comments

ASCII problem

Posted by Jesús Fri, 21 Sep 2007 11:36:00 GMT

Some Ruby installations don't provide the iconv library (mainly Win32 and JRuby), and this makes the XMI parser to fail with the following message:
No decoder found for encoding ASCII.  Please install iconv.
The last snapshot provides a workaround for this problem. Anyway, the best solution is to install the iconv library. If you use the One-click Ruby Installer for Windows, it is installed by default.

no comments

RubyTL svn snapshots

Posted by Jesús Sat, 15 Sep 2007 21:49:00 GMT

I have just uploaded the last RubyTL snapshot, that can be downloaded from the AGE main page. I hope to upload timely subversion snapshots between each release, so that you don't need to checkout the repository manually to get the latest bug fixes and features.

Snapshot installation procedure

  • Download the last snapshot.
  • Unzip the file in some directory (I recommend to unzip in the AGE installation directory).
  • Configure AGE to use this particular snapshot.
    • Go to Window -> Preferences -> RubyTL -> Path options
    • Select "Use alternative path"
    • Type the path where you unzipped the snapshot in the "Alternative path" text box. Warning for W32 users:. You need to type an additional "/" at the beginning of the of the path. For instance, type "/C:\age\rubytl-snapshot\rubytl" for "C:\age\rubytl-snapshot\rubytl".
  • Following this steps, it should work. Otherwise, please email me or use the RubyTL mailing list.

no comments

One month down

Posted by Jesús Mon, 27 Aug 2007 10:14:00 GMT

We have been almost all august down because of a failure in the server's power supply. I hope the problem is finally solved, and the project site can be properly accessed.

11 comments