解析解释的编程语言的过程是什么?

时间:2009-12-17 13:04:28

标签: parsing interpreted-language

我想知道创建语法树的最佳方法是什么。

4 个答案:

答案 0 :(得分:3)

以下是LLVM项目中abstract syntax trees(AST)的一些解释。

预告片:

  

程序的AST以这样的方式捕获其行为,即编译器的后续阶段(例如代码生成)很容易解释。我们基本上希望语言中每个构造都有一个对象,AST应该对语言进行密切建模。

答案 1 :(得分:3)

用于学习编写编译器和解释器的标准Stack Overflow资源是Learning to write a compiler

答案 2 :(得分:2)

真的,与其他任何语言都没有什么不同。解释语言和编译语言之间的区别主要在后端,而不是前端。特定语言可能具有特定的解析要求,但您无法在两种语言之间的解析技术方面进行有意义的比较。

答案 3 :(得分:1)

您没有列出解析器的语言要求,因此如果有可能使用C或C ++,您应该首先查看yacc:http://en.wikipedia.org/wiki/Yacc

Yacc为您的特定语法生成C解析器。开始使用它可能需要一些额外的工作,但是一旦你完成并且滚动,它应该更容易维护。

免责声明:我在一个项目中只使用了yacc,而且是10年以前,所以你的milage可能会有所不同。