MURAL - Maynooth University Research Archive Library



    Decorating tokens to facilitate recognition of ambiguous language constructs


    Malloy, Brian A. and Gibbs, Tanton H. and Power, James F. (2003) Decorating tokens to facilitate recognition of ambiguous language constructs. Software: Practice and Experience, 33 (1). pp. 19-39. ISSN 0038-0644

    [img]
    Preview
    Download (290kB) | Preview


    Share your research

    Twitter Facebook LinkedIn GooglePlus Email more...



    Add this article to your Mendeley library


    Abstract

    Software tools are fundamental to the comprehension, analysis, testing and debugging of application systems. A necessary first step in the development of many tools is the construction of a parser front-end that can recognize the implementation language of the system under development. In this paper, we describe our use of token decoration to facilitate recognition of ambiguous language constructs. We apply our approach to the C++ language since its grammar is replete with ambiguous derivations such as the declaration/expression and template-declaration/expression ambiguity. We describe our implementation of a parser front-end for C++, keystone, and we describe our results in decorating tokens for our test suite including the examples from Clause Three of the C++ standard. We are currently exploiting the keystone front-end to develop a taxonomy for implementation-based class testing and to reverse-engineer Unified Modeling Language (UML) class diagrams.

    Item Type: Article
    Keywords: grammar; symbol table; parser; Unified Modeling Language; design pattern; the Facade and Decorator design patterns;
    Academic Unit: Faculty of Science and Engineering > Computer Science
    Item ID: 8232
    Identification Number: https://doi.org/10.1002/spe.493
    Depositing User: Dr. James Power
    Date Deposited: 22 May 2017 15:45
    Journal or Publication Title: Software: Practice and Experience
    Publisher: Wiley
    Refereed: Yes
    URI:
    Use Licence: This item is available under a Creative Commons Attribution Non Commercial Share Alike Licence (CC BY-NC-SA). Details of this licence are available here

    Repository Staff Only(login required)

    View Item Item control page

    Downloads

    Downloads per month over past year

    Origin of downloads