20 research outputs found
Pending Evolution of Grammars
The classic approach to grammar manipulation is based on instant processing of grammar edits, which limits the kinds of grammar evolution scenarios that can be expressed with it. Treating transformation preconditions as guards poses limitations on concurrent changes of the same grammar, on reuse of evolution scripts, on expressing optionally executed steps, on batch processing and optimization of them, etc. We propose an alternative paradigm of evolution, where a transformation can be scheduled for later execution based on its precondition. This kind of extreme evolution can be useful for expressing scenarios that are impossible to fully automate within the classic or the negotiated transformation paradigms
Recovering Grammar Relationships for the Java Language Specification
Grammar convergence is a method that helps discovering relationships between
different grammars of the same language or different language versions. The key
element of the method is the operational, transformation-based representation
of those relationships. Given input grammars for convergence, they are
transformed until they are structurally equal. The transformations are composed
from primitive operators; properties of these operators and the composed chains
provide quantitative and qualitative insight into the relationships between the
grammars at hand. We describe a refined method for grammar convergence, and we
use it in a major study, where we recover the relationships between all the
grammars that occur in the different versions of the Java Language
Specification (JLS). The relationships are represented as grammar
transformation chains that capture all accidental or intended differences
between the JLS grammars. This method is mechanized and driven by nominal and
structural differences between pairs of grammars that are subject to
asymmetric, binary convergence steps. We present the underlying operator suite
for grammar transformation in detail, and we illustrate the suite with many
examples of transformations on the JLS grammars. We also describe the
extraction effort, which was needed to make the JLS grammars amenable to
automated processing. We include substantial metadata about the convergence
process for the JLS so that the effort becomes reproducible and transparent
Language Support for Megamodel Renarration
Megamodels may be difficult to understand because they reside at a high level of abstraction and they are graph-like structures that do not immediately provide means of order and decomposition as needed for successive examination and comprehension. To improve megamodel comprehension, we introduce modeling features for the recreation, in fact, renarration of megamodels. Our approach relies on certain operators for extending, instantiating, and otherwise modifying megamodels. We illustrate the approach in the context of megamodeling for Object/XML mapping (also known as XML data binding)
Language Convergence Infrastructure
The process of grammar convergence involves grammar extraction and transformation for structural equivalence and contains a range of technical challenges. These need to be addressed in order for the method to deliver useful results. The paper describes a DSL and the infrastructure behind it that automates the convergence process, hides negligible back-en
A Unified Format for Language Documents
We have analyzed a substantial number of language documentation
artifacts, including language standards, language specifications,
language reference manuals, as well as internal documents of
standardization bodies. We have reverse-engineered their intended
internal structure, and compared the results. The Language Document
Format (LDF), was developed to specifically support the
documentation domain. We have also integrated LDF into an
engineering discipline for language documents including tool
support, for example, for rendering language documents, extracting
grammars and samples, and migrating existing documents into LDF. The
definition of LDF, tool support for LDF, and LDF applications are
freely available through SourceForge
Guided Grammar Convergence. Full Case Study Report. Generated by converge::Guided
This report is meant to be used as auxiliary material for the guided grammar
convergence technique proposed earlier as problem-specific improvement in the
topic of convergence of grammars. It contains a narrated MegaL megamodel, as
well as full results of the guided grammar convergence experiment on the
Factorial Language, with details about each grammar source packaged in a
readable form. All formulae used within this document, are generated
automatically by the convergence infrastructure in order to avoid any mistakes.
The generator source code and the source of the introduction text can be found
publicly available in the Software Language Processing Suite repository
Cotransforming Grammars with Shared Packed Parse Forests
SPPF (shared packed parse forest) is the best known graph representation of a parse forest (family of related parse trees) used in parsing with ambiguous/conjunctive grammars. Systematic general purpose transformations of SPPFs have never been investigated and are considered to be an open problem in software language engineering. In this paper, we motivate the necessity of having a transformation operator suite for SPPFs and extend the state of the art grammar transformation operator suite to metamodel/model (grammar/graph) cotransformations