Programming approach to recover DSLs
and improvements to MARS system
Computer and Information Science
UAB Home Page
University of Maribor
1. Aug 31, ICGI
2. Sep 3,
University of Nevada at Reno invited talk.
3. Sep 9, CoRTA
2010 keynote (Braga, Portugal).
4. Sep 15, ICGI
2010 presentation (Valencia, Spain).
5. Sep 21, group
Symposium and Student Research Competition got accepted by SPLASH 10.
Grammar Inference (GI) is the process of
learning a grammar from examples, either positive (i.e., the grammar
generates the string) and/or negative (i.e., the grammar does not
generate the string). While GI has been successfully applied to many
diverse domains such as speech recognition and robotics, its application
to software engineering has been limited. Because of the widespread use
of context-free grammars (CFGs) in software system, there is a need to
maintain and infer CFGs. The goal of the proposed research is to
investigate the applicability of GI to software engineering and
programming language (PL) development challenge problems, where GI offers
an innovative solution to the problem, while remaining tractable and
within the scope of that problem. Specifically, the following challenges
are proposed for investigation:
Recovery of domain-specific language (DSL)
from example DSL programs.
Recovery of a metamodel from instance models.
material is based upon work supported by the National
Science Foundation under Grant
No. 0811630. Any opinions, findings, and conclusions or
recommendations expressed in this material are those of the author(s) and
do not necessarily reflect the views of the National Science Foundation.
rapid development of model-driven engineering, modeling has become a
widely used software development technique. Metamodels define the syntax of
models and are needed to load model instances into a modeling tool. As a
metamodel undergoes frequent evolution, previous model instances may
become orphaned from the new definition. The metamodel may also be lost,
resulting in the inability to load and view existing model instances.
MARS, a metamodel recovery system using grammar inference, was developed
to solve this problem. An overview of MARS is illustrated in the
However MARS could only infer metamodels with single-tiered
domains, when it comes to multi-tiered domains which are more widely used in model-driven engineering,
due to being able to represent larger models and enabling users to
capture multiple viewpoints instead of a single one, the performance of
MARS is not acceptable anymore. As a result MARS with extensions
is presented to solve this problem and infer multi-tiered domain models
(i.e., ESML models).