• DocumentCode
    834688
  • Title

    Compiler generation tools for C#

  • Author

    Woss, A. ; Löberbauer, M. ; Mössenböck, H.

  • Author_Institution
    Inst. for Practical Comput. Sci., Johannes Kepler Univ. Linz, Austria
  • Volume
    150
  • Issue
    5
  • fYear
    2003
  • Firstpage
    323
  • Lastpage
    327
  • Abstract
    Recursive descent parsing has the advantage of more convenient semantic processing than in the case of bottom-up parsing. However, it is limited to LL(1) grammars, which has often prevented its use for popular programming languages, such as Java or C#. The authors extended their compiler generator Coco/R, which generates recursive descent parsers, so that the user can specify rules for LL(1) conflict resolution. The simple technique works by evaluating user-defined Boolean expressions to allow the parser to make its parsing decisions where a one-symbol lookahead does not suffice. Thus multi-symbol lookahead or even semantic information can now guide the parsing process as well. Using their extended compiler generator, the authors implemented a compiler front end for C# that can be used as a framework for implementing a variety of tools, two of which are described in more detail: a white-box testing tool that measures path coverage, and a performance hint tool that evaluates source code according to user-defined rules about performance enhancements or coding style.
  • Keywords
    Boolean algebra; C language; compiler generators; program testing; software performance evaluation; C#; Coco/R; LL(1) conflict resolution; coding style; compiler front end; compiler generation tools; multi-symbol lookahead; path coverage; performance enhancements; performance hint tool; recursive descent parsers; source code; user-defined Boolean expressions; white-box testing tool;
  • fLanguage
    English
  • Journal_Title
    Software, IEE Proceedings -
  • Publisher
    iet
  • ISSN
    1462-5970
  • Type

    jour

  • DOI
    10.1049/ip-sen:20030984
  • Filename
    1249344