我正在(与其他人)为没有计算机科学背景的IT专业人员教授一门相对入门的计算机科学课程。由于我开发了自动机和语法的课程材料,我还负责教授编译器和编译器构造。
几年前,当我在大学里学习编译时,我们所有的例子都来自Lex和Yacc。这些还在广泛使用吗?有没有更常用于Java的东西?这些学生精通C和Java,但从未使用过解析器生成器。
如有任何关于教学内容的建议,我们将不胜感激
发布于 2008-11-01 03:02:55
Antlr被广泛使用,有很好的文档记录,而且是免费的。它得到了Ant的支持,可以在许多其他语言中以Java为目标。
发布于 2008-11-04 10:44:28
我不使用词法分析器和解析器生成器。它们非常简单,可以手工生成,并且是编译器中最容易编写的部分。此外,当你手工构建它们时,你可以让它们变得非常快。
发布于 2008-11-02 01:31:18
遗憾的是,您的学生并不精通C++。一旦我遇到了Spirit库,它的概念是丰富的、EBNF风格的DSL,我就把Antlr、Lex和Yacc抛在了后面!在代码中描述语法要灵活得多。
优秀的库,尽管有一个不可否认的学习曲线。
但是,如果没有C++,Antlr可能是您最好的选择。
https://stackoverflow.com/questions/255442
复制相似问题