Toward an engineering discipline for grammarware

  title={Toward an engineering discipline for grammarware},
  author={Paul Klint and Ralf L{\"a}mmel and Chris Verhoef},
  journal={ACM Trans. Softw. Eng. Methodol.},
Grammarware comprises grammars and all grammar-dependent software. The term grammar is meant here in the sense of all established grammar formalisms and grammar notations including context-free grammars, class dictionaries, and XML schemas as well as some forms of tree and graph grammars. The term grammar-dependent software refers to all software that involves grammar knowledge in an essential manner. Archetypal examples of grammar-dependent software are parsers, program converters, and XML… 

Figures from this paper

Grammar Zoo: A corpus of experimental grammarware

  • V. Zaytsev
  • Computer Science, Linguistics
    Sci. Comput. Program.
  • 2015

Ambiguity Detection for Programming Language Grammars

This thesis investigates ambiguity detection with the aim of checking grammars for programming languages, and evaluates existing methods with a set of criteria for practical usability, and presents various improvements to ambiguity detection in the areas of accuracy, performance and report quality.

pLERO: Language for grammar refactoring patterns

PLERO is introduced, formal specification language for preserving knowledge of grammar engineers, complementing mARTINICA, the universal approach for automated refactoring of context-free grammars, and formalism based on patterns is proposed, seen as well-proven way of knowledge preservation in variety of domains, such as software architectures.

An analysis of rule coverage as a criterion in generating minimal test suites for grammar-based software

This paper proposes a strategy for the construction of test suites for grammar based software, and illustrates this strategy using the ISO CPP grammar, and uses the concept of rule coverage as a pivot for the reduction of implementation-based and specification-based test suites.

Analysing the effectiveness of rule-coverage as a reduction criterion for test suites of grammar-based software

This work finds that when grammar rule coverage is used as the sole criterion for reducing test suites of grammar based software, the fault detection capability of that reduced test suite is greatly diminished when compared to other coverage criteria such as statement coverage.

Recovering grammar relationships for the Java Language Specification

  • R. LämmelV. Zaytsev
  • Computer Science
    2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation
  • 2009
This work describes a refined method for grammar convergence, and it uses it in a major study, where it is used to recover the relationships between all the grammars that occur in the different versions of the Java Language Specification.

Ambiguity Detection Methods for Context-Free Grammars

A new hybrid ADM is developed which uses Schmitz' method to filter out parts of a grammar that are guaranteed to be unambiguous, and is the most practically usable on grammars.

A Systematic Framework for Grammar Testing

  • Lixiao ZhengH. Chen
  • Computer Science, Materials Science
    2009 Eighth IEEE/ACIS International Conference on Computer and Information Science
  • 2009
This paper proposes a nonterminal-based approach for grammar modularization, combined with an iterative process for grammar testing in which a grammar is tested with respect to both a generator and a recognizer.

Generation for Grammar Engineering

It is argued that generation can be exploited to address other issues that are relevant to grammar engineering such as in particular, detecting grammar incompleteness, identifying sources of over-generation and analysing the linguistic coverage of the grammar.

Translating grammars to accurate metamodels

This work conceived a translation from an EBNF-like syntax to Ecore metamodels that considers the grammars’ intricacies and enables grammar-based languages to leverage the benefits of Ecore-compatible language tools while supporting natural definition of concrete and abstract syntax.



Grammar Testing

This work proposes a generalisation of the known rule coverage for grammars, that is, context-dependent branch coverage, and investigates grammar testing, especially coverage analysis, test set generation, and integration of testing and grammar transformations.

Deriving tolerant grammars from a base-line grammar

  • A. S. KlusenerR. Lämmel
  • Computer Science
    International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings.
  • 2003
This paper provides a well-engineered approach to the derivation of tolerant grammars, which is based on previous work on error recovery, fuzzy parsing, and island grammar, and is founded on an approximation relation between a tolerant grammar and a base-line grammar which serves as a point of reference.

Attribute grammar paradigms—a high-level methodology in language implementation

  • J. Paakki
  • Computer Science, Linguistics
  • 1995
The methodology of integrating two problem-solving disciplines together is explored with a classification of the paradigms into structured, modular, object-oriented, logic, and functional attribute grammars.

A grammatical view of logic programming

The grammatical point of view shows that many useful extensions of Horn clauses incorporated in Prolog without theoretical justification correspond to well-established grammatical concepts, which gives a natural framework for defining extensions to the concept of logic program.

Grammar Adaptation

An operator suite for grammar adaptation is derived from a few fundamental transformation primitives and combinators, namely operators for refactoring, construction and destruction.

Semantics-preserving migration of semantic rules after left recursion removal in attribute grammars

It is demonstrated, that during automatic removal of left recursion at the same time the semantic rules can be migrated, that a programmer can continue to use semantic rules on a left recursive grammar.

Robust multilingual parsing using island grammars

An approach to creating a robust parser, based on the concept of island grammars, is presented here, used in the past for robust parsing and lightweight analysis of software.

Introduction to PROGRESS, an Attribute Graph Grammar Based Specification Language

This paper informally introduces PROGRESS' underlying graph grammar formalism and demonstrates its systematic use by specifying parts of a desk calculator's functional behaviour.

Generating robust parsers using island grammars

  • L. Moonen
  • Computer Science
    Proceedings Eighth Working Conference on Reverse Engineering
  • 2001
It is shown how island grammars can be used to generate robust parsers that combine the accuracy of syntactical analysis with the speed, flexibility and tolerance usually only found in lexical analysis.