Your browser does not support JavaScript!
http://iet.metastore.ingenta.com
1887

Compiler generation tools for C#

Compiler generation tools for C#

For access to this article, please select a purchase option:

Buy article PDF
£12.50
(plus tax if applicable)
Buy Knowledge Pack
10 articles for £75.00
(plus taxes if applicable)

IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.

Learn more about IET membership 

Recommend Title Publication to library

You must fill out fields marked with: *

Librarian details
Name:*
Email:*
Your details
Name:*
Email:*
Department:*
Why are you recommending this title?
Select reason:
 
 
 
 
 
IEE Proceedings - Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

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.

References

    1. 1)
      • ‘Coco Tools project homepage at the Rotor Community Site’, http://cocotools.sscli.net.
    2. 2)
      • JavaCC™ (Java Compiler Compiler), ‘The Java parser generator’, http://javacc.dev.java.net.
    3. 3)
      • N. Wirth . What can we do about the unnecessary diversity of notation for syntactic definitions?. Commun. ACM
    4. 4)
      • N. Wirth . (1996) Compiler construction.
    5. 5)
      • Wöß, A., and Löberbauer, M.: ‘SSCLI-Project: compiler generation tools for C#’, http://dotnet.jku.at/Projects/Rotor/.
    6. 6)
      • T. Parr . (1993) Language translation using PCCTS and C++.
    7. 7)
      • D.E. Knuth . Semantics of context-free languages. Math. Syst. Theory , 127 - 145
    8. 8)
      • H. Mössenböck . A generator for production quality compilers. Lect. Notes Comput. Sci. , 42 - 55
    9. 9)
      • Löberbauer, M.: `Ein Werkzeug für den White-Box-Test', February 2003, Diploma thesis, Institute of Practical Computer Science, University of Linz, Austria.
    10. 10)
      • ‘Rotor: the Microsoft Rotor Project’, http://research.microsoft.com/collaboration/university/europe/rotor/.
    11. 11)
      • P. Terry . (1997) Compilers and compiler generators – an introduction using C++.
    12. 12)
      • D.E. Knuth . On the translation of languages from left to right. Inf. Control , 607 - 639
    13. 13)
      • A.V. Aho , J.D. Ullman . (1977) Principles of compiler design.
    14. 14)
      • ANTLR (ANother Tool for Language Recognition), http://www.antlr.org.
    15. 15)
      • Mössenböck, H.: ‘Coco/R for various languages – Online documentation’, http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/.
    16. 16)
      • Steineder, K.H.: `Optimization hint tool', September 2003, Diploma thesis, Institute for Practical Computer Science, University of Linz, Austria.
    17. 17)
      • ‘Standard ECMA-334: C# language specification’, December 2001, http://www.ecma-international.org/publications/standards/ecma-334.htm.
http://iet.metastore.ingenta.com/content/journals/10.1049/ip-sen_20030984
Loading

Related content

content/journals/10.1049/ip-sen_20030984
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading
This is a required field
Please enter a valid email address