Finding Bugs in Program Generators by Dynamic Analysis of Syntactic Language Constraints1

Sebastian Erdweg, Vlad Vergu, Mira Mezini, Eelco Visser

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

1 Citation (Scopus)


Program generators and transformations are hard to implement correctly, because the implementation needs to generically describe how to construct programs, for example, using templates or rewrite rules. We apply dynamic analysis to program generators in order to support developers in finding bugs and identifying the source of the bug. Our analysis focuses on syntactic language constraints and checks that generated programs are syntactically well-formed. To retain a language's grammar as the unique specification of the language's syntax, we devised mechanisms to derive the analysis from the grammar. Moreover, we designed a run-time system to support the modular activation/deactivation of the analysis, so that generators do not require adaption. We have implemented the analysis for the Stratego term-rewriting language and applied it in case studies based on Spoofax and SugarJ.

Original languageEnglish
Title of host publicationMODULARITY'14
Subtitle of host publicationProceedings of the companion publication of the 13th International Conference on Modularity
Place of PublicationNew York
PublisherAssociation for Computing Machinery (ACM)
Number of pages4
ISBN (Print)978-1-4503-2773-2
Publication statusPublished - 2014
Event13th International Conference on Modularity - Lugano, Switzerland
Duration: 22 Apr 201426 Apr 2014
Conference number: 13


Conference13th International Conference on Modularity
Abbreviated titleModularity 2014


  • Abstract syntax tree
  • Dynamic analysis
  • Generative programming
  • Program transformation
  • Spoofax
  • SugarJ
  • Typesmart constructors
  • Well-formedness checks


Dive into the research topics of 'Finding Bugs in Program Generators by Dynamic Analysis of Syntactic Language Constraints1'. Together they form a unique fingerprint.

Cite this