我想知道哪个编译器设计使用Flex& amp;等工具是最好的。野牛或C / C ++。 因为我听说使用工具开发并不值得。我是编译器设计的初学者,所以我需要对此进行澄清。我想问你的另一件事是我在编译器设计中所说的上述两种方式中的哪一种。请帮我!!!
答案 0 :(得分:1)
这取决于您要解析的语法的复杂性。手工实现简单的语法并不难,但没有经验就很难复杂的语法。
如果您对词法分析器和解析器没有任何经验,那么最好从不使用LR(LALR)解析器但LL的其他工具开始,因为它们对于初学者来说更直观。
我对ANTLR有很好的经验。它生成Java代码,但它也有C ++后端和很好的语法开发工具(ANTLRWorks)。
所以我的建议不是你选择的那两个,而是从ANTLR开始。
答案 1 :(得分:1)
如果您不受C / C ++约束,我建议使用Eclipse Xtext。它易于学习,具有出色的文档,并且具有自动生成支持您的语言的基于Eclipse的IDE的附加好处,具有语法高亮,内容辅助和其他强大功能。
Xtext有自己的编程语言(Xtend),它是Java的一个更强大的版本(在某种程度上,它类似于Scala)。 Xtext在内部使用ANTLR。