FAST Java Model

Mentor: Nicolas Anquetil
Second mentor: Yuriy Tymchuk
Level: Intermediate
Submitted proposal to Melange: Benjamin Arezki
Invited students: Benjamin Arezki, Mathieu Dehouck
Students interested: Abhishek Tyagi(very), Benjamin Arezki, Ronny De Jesus, Mathieu Dehouck, Vitalii Melnyk, Saad Touhbi


For in depth source code analysis a support of abstract syntax trees is required. FAST is an abstract syntax tree extension for FAMIX meta-model that is used by Moose technology. The goal of this project is to create a Java version of FAST.

Technical Details

As programming languages are different, their AST representations are different too. FAST model aims for creation of as generic as possible core that can be extended for different languages. Also the structure of a model allows creation of generic algorithms like symbol resolution, metrics calculation and rule checking that will work for any language. A prototype of FAST for Smalltalk is already implemented by Yuriy Tymchuk as well as couple of nodes for Java. During the project a student will implement the rest of the Java model, and improve some parts of PetitJava parser that is used by FAST. More detailed information about FAST is provided in the Moose day presentation: http://youtu.be/dRr3WHOD3x4

Benefits to the Student

The student will gain a deep understanding of a Java syntax and abstract syntax tree model. He will also learn about PetitParser framework, and gain knowledge about software modeling and analysis.

Benefits to the Community

Community will get a FAST model for Java that can be used for software assessment with Moose. Also this model can be used later in PhD projects such as automation of source code translation form C++ to Java.

Updated: 10.4.2013