Translating M3 to MSE

Moose is a platform for software and data analysis, and FAMIX is its language independent metamodel. MSE is the interchange format used to import models of software into Moose to enable analysis. The bottleneck in generating models for different languages is that one must first write a parser and an MSE generator for that language.

Rascal is a meta-programming language for analyzing and transforming source code. It shares many similar goals with Moose. M3 is the language-independent metamodel of Rascal, which shares many similarities with FAMIX, though FAMIX is inherently an object-oriented model and M3 is essentially functional. The Rascal project intends to develop M3 importers for many programming languages. By translating M3 models to FAMIX, there can be a fast path to importing software models into Moose as well.

A first prototype of such a translator for Java has already been implemented by Oscar Nierstrasz and has been documented in a slideshare presentation.

This project would implement a full M3 to MSE translator for Java and other languages.

See also M3 for Moose, describing a prototype translator implemented directly in Pharo Smalltalk.

Contact: Oscar Nierstrasz