How can I parse code to build a compiler in Java?

后端 未结 12 1163
时光说笑
时光说笑 2021-02-09 06:08

I need to write a compiler. It\'s homework at the univ. The teacher told us that we can use any API we want to do the parsing of the code, as long as it is a good one. That way

12条回答
  •  傲寒
    傲寒 (楼主)
    2021-02-09 06:50

    Regex is good to use in a compiler, but only for recognizing tokens (i.e. no recursive structures).

    The classic way of writing a compiler is having a lexical analyzer for recognizing tokens, a syntax analyzer for recognizing structure, a semantic analyzer for recognizing meaning, an intermediate code generator, an optimizer, and last a target code generator. Any of those steps can be merged, or skipped entirely, if makes the compiler easier to write.

    There have been many tools developed to help with this process. For Java, you can look at

    • ANTLR - http://www.antlr.org/
    • Coco/R - http://ssw.jku.at/Coco/
    • JavaCC - https://javacc.dev.java.net/
    • SableCC - http://sablecc.org/

提交回复
热议问题