Sunday, August 31, 2008

Using The Meta-Environment for Model Driven Engineering

During the last week of August, the 16th Joint Smalltalk Conference of the European Smalltalk User Group (ESUG) was held in Amsterdam, at CWI. As part of the "meta-modelling" day (Tuesday) I gave a talk on how the ASF+SDF Meta-Environment could be used for Model Driven Engineering (MDE).
During the discussion there seemed to be some interest as to how the Meta-Environment relates to OMeta, developed by Alessandro Warth. In this post I would like to clarify some of the distinctions.
First of all OMeta uses a grammar formalism that is based on parsing expression grammars (PEGs), whereas the Meta-Environment is based on the syntax definition formalism (SDF), which allows the specification of arbitrary context-free grammars (CFGs). As a result, in Ometa, you won't risk writing ambiguous grammars (that is, grammars which allow multiple derivations for the same string). However, you will have to mould your language's grammar until it fits the PEG framework. In SDF you can write your grammar much more declaratively, and use the full power of CFGs to describe your language. As a consequence, there is a risk of ambiguity. SDF provides a number of disambiguation constructs to amend this situation (follow restrictions, priorities, rejects).
Another difference between OMeta and the Meta-Environment is how languages are given semantics. In the Meta-Environment, all computation is done using (source-to-source) transformation. This means that grammars do not have semantic actions that are executed during parsing. Instead, a transformation engine can be provided with a set of rewrite rules that transforms one language to another. Interpretation, compilation, type checking etc. are all implemented as source-to-source transformations. In OMeta, on the other hand, grammar rules are decorated with semantic actions that are executed during parsing. These actions are written in an (general purpose) OMeta host language (which is a parameter of OMeta).
If you look at these distinctions, one could say that OMeta is better at defining (small) interpreters that require a general purpose language and a full-fledged host environment. On the other hand, the Meta-Environment is better fit for constructing compilers and code generation because compilers are essentially (source-to-source) transformations. In addition, the generality of the parsing technology behind the Meta-Environment allows it to be used for other task as well: analysis and transformation of legacy systems. Currently, when implementing a Domain Specific Language (DSL) using the Meta-Environment one has to resort to code generation for integration with the environment (e.g. for dealing with stuff like files, databases, GUI libraries, sockets etc. — anything that cannot be easily expressed as source-to-source transformation...). It would be interesting to see if the parsing power of SDF could be combined with the(much more dynamic and late-bound) interpretation model of OMeta to make the development of DSLs more light-weight.

Thursday, August 28, 2008

LDTA 2009

http://www.ldta.info publishes call for papers for LDTA 2009

Thursday, August 21, 2008

New webserver for www.meta-environment.org

http://www.meta-environment.org moved to its own server hardware. To facilitate future growth and to bundle the web servers for The Meta-Environment open source project a new server was installed. The first site to move was www.meta-environment.org itself. Later bugzilla and sisyphus will follow.

Tuesday, July 1, 2008

Eclipse version

The Meta-Environment team has started parallel development on an Eclipse version of The Meta-Environment. It is based on http://www.eclipse.org/imp and will support all features of Meta-Environment 2.0.

Tuesday, September 25, 2007

Meta-Environment 2.0, Release Candidate 3 is online, and SDF 2.5 released

With the release of Meta-Environment 2.0RC3, SDF 2.5 was also released. This release candidate also supplies a binary installer for Linux/i386. See also:
  • Downloads for source distribution of The ASF+SDF Meta-Environment 2.0 RC3
  • Downloads for binary linux installer of The ASF+SDF Meta-Environment 2.0 RC3
  • Downloads for source distribution of SDF 2.5
  • Downloads for binary linux installer of SDF 2.5

Wednesday, May 9, 2007

The Meta-Environment will be released under the BSD license

All forthcoming releases and release candidates of The Meta-Environment and its sub-components will be released under the BSD License.

Sunday, March 25, 2007

The Module Manager presented at LDTA 2007

The module manager, which is a core component of The Meta-Environment, and the prime vehicle for instantiating IDE's for other domain specific languages was presented by Taeke Kooiker at the Seventh Workshop on Language Descriptions, Tools and Applications (LDTA)

Friday, March 23, 2007

The Meta-Environment demo at CSMR 2007

The Meta-Environment 2.0, release candidate 2 was demonstrated to a mixed academic and industrial audience at the 11th European Conference on Software Maintenance and Reengineering. This demonstration included the Software Visualization plugin for The Meta-Environment. This plugin was constructed by master students of the Universiteit van Amsterdam in a project for the courses Software Process and Software Construction. The plugin will be made available with release candidate 3.

Sunday, March 11, 2007

SDF on its own website

The primary reference for SDF is now http://www.syntax-definition.org The Meta-Environment team has always made SDF available as a separately distributable and usable product. Due to this policy, SDF is now used by many different projects and people. Now, we also present SDF on its own website.

Monday, February 26, 2007

Meta-Environment 2.0, Release Candidate 2 is online, and SDF 2.4 released

See ReleaseNotes for a description of the next release candidate of the ASF+SDF Meta-Environment. With this release, SDF 2.4 was also released. This release candidate is the first to supply a binary installer for Linux/i386. See also:

  • ReleaseNotes
  • Downloads for source distribution of The ASF+SDF Meta-Environment 2.0 RC2
  • Downloads for binary linux installer of The ASF+SDF Meta-Environment 2.0 RC2
Meta-Environment Cake

Friday, February 9, 2007

ATerms in Top Ten most cited Software Engineering Papers

The January issue of the journal Information and Software Technology publishes a list of most cited articles in software engineering that were published in the year 2000. The original ATerm article ("Efficient Annotated Terms", M.G.J. van den Brand, H.A. de Jong, P. Klint and P.A. Olivier, Software-Practice and Experience 30 (3):259-291 Mar 2000) appears on the sixth position. A follow-up paper describing applications of ATerms appears in that same journal and can be found at ATerms for manipulation and exchange of structured data: It's all about sharing.

Thursday, February 1, 2007

Plugin Architecture

Hayco de Jong defends his dissertation at the Universiteit van Amsterdam on component technology with its application to the infra-structure of The Meta-Environment.

See also:

Tuesday, January 23, 2007

The Documentation Frontlines

The documentation project of The Meta-Environment 2.0 is progressing at a steady pace. See Documentation. Most of the old manual is updated already. The first guided tour (flash) demo was put online yesterday.

All progress made on the documentation front is published online immediately.

Monday, January 15, 2007

Using the Meta-Environment for COBOL Analysis and Transformation

Niels Veerman defends at the Vrije Universiteit Amsterdam his dissertation on Cobol analysis and transformation using The Meta-Environment. His cases include goto elimination and the detection of 'mines' in COBOL source code. See http://www.cs.vu.nl/~nveerman/research/thesis.pdf. Also see the popular article in the (Dutch) newspaper Computable http://www.computable.nl/artikel.jsp?id=1839499

Sunday, December 24, 2006

Extension of Apigen

Antoine Reilles defends his dissertation in Nancy using ATerms and extending ApiGen into GOM. See http://www.loria.fr/~reilles/papers/manuscrit.pdf (in French).

Friday, December 1, 2006

SDF developer from Norway

Karl Trygve Kalleberg has joined to help SDF. He has added a Java version of SGLR to the Subversion repository. This version is currently still in alpha status.

Wednesday, November 1, 2006

New developer

Arnold Lankamp is welcomed as a new full-time developer at CWI. He will be working on the ToolBus and ATerm infra-structure of The Meta-Environment.

Tuesday, September 26, 2006

New website

The ASF+SDF Meta-Environment is going 'Open Source'. The system has been released with an open source license ever since its first release in 2000. However, we now actively promote it as an open source project. The reasons are:
  • Some components have reached a stability that requires only minor maintenance. This means that such components may be maintained easily since all the requirements are clear and fixed.
  • More and more sub-components of the Meta-Environment are being used by other systems, and thus more programmers naturally help with the development effort.
  • More and more users and systems use SDF for parsing.
  • More and more users use ASF+SDF for their source code analysis or transformation tooling, which warrants an effort in documentation targeted at specific usage scenarios.

The following measures have been taken:

If you would like to contribute to either our documentation or our sources, please contact meta-devel-list@cwi.nl.

Saturday, July 22, 2006

Build environment factored out

Martin Bravenboer from UU helped factoring out the build environment of all our packages. This means that the source code has become more portable, and that many portability and compilability issues can now be fixed in a single location.

Tuesday, June 20, 2006

New developer for ATerm library

Erik Scheffers from TU/e is welcomed as a new member of the development team. His first goals are code tuning the ATerm library for portability, incompatibility issues with the newest GCC versions, and some minor efficiency issues.

Tuesday, May 16, 2006

Meta-Environment 2.0, Release Candidate 1

We have put a release candidate online for beta testing version 2.0. See ReleaseNotes for important information.