我需要一些资源才能开始(我是一名学生)
答案在这里可能非常主观.但是如果你想编写解析器,我建议使用ANTLR.目前,ANTLR支持C,C#,ActionScript,JavaScript和Java目标.根据我的经验,Java版本使用起来非常稳定,并且已经在许多强大的开源项目中使用,即Drools和Hibernate.
是否需要用编程语言编写?或者你可以使用Flex和Bison吗?
解析器和编译器是两个独立的问题。例如,我可能会用C编写一个编译器,但是我永远不会用C编写一个解析器(我将使用解析器生成器)。对于速度不是优先级的非常简单的解析器,我可以使用具有良好的文本处理功能的Perl或Python手动编码解析器。但是对于除了非常基本的解析器之外的任何东西,我都会使用某种解析器生成工具。最常用的是ANTLR,Coco / R和Lex / Yacc以及GNU实现Flex / Bison。我的个人偏好是Coco / R,但是ANTLR如今似乎更受欢迎。
如果要编写通用编程语言,则可能需要考虑自己编写。这样做有很多好处,包括可移植性(人们只需要移植该语言的第一个版本)和演示功能(解析是一个困难的问题,因此,如果可以用您的语言来完成,这就是对您语言的证明)。如果您的语言经过解释,出于性能原因,这可能不合适。