编程语言
首页 > 编程语言> > java-什么是合适的词法生成器,可用于从许多语言源文件中剥离标识符?

java-什么是合适的词法生成器,可用于从许多语言源文件中剥离标识符?

作者:互联网

我正在为我的大学进行一个小组项目,该项目将用于计算机科学中的窃检测.

我的小组主要采用的是这篇期刊文章:Winnowing: Local Algorithms for Document Fingerprinting中描述的哈希/指纹技术.这与MOSS抄袭检测系统的工作原理非常相似.

基本上,我们从同学的源代码中提取k-gram哈希值,并在数据库中查找相关匹配项(以及如何确定选择哪种哈希值作为文档指纹的优化方法).

我们项目的第一个方面是项目的“前端”部分,它将包含有关检测系统可以处理的每种文件格式的一些语义知识.这将使我们能够从不再需要的文档中删除某些细节,以用于窃检测.基本上,我们希望能够将各种编程语言中的所有变量重命名为常量字符串或字母.

什么是轻量级的解决方案(词法生成器或类似工具),我们可以用来帮助将不同语言源代码文件中的所有变量重命名为常量?

我们的项目是用Java编写的.

理想情况下,我只是希望能够为每种语言定义一种语法,然后我们的前端将能够将该语言源文件中的所有标识符重命名为某个常量.然后,我们将对我们要支持的每种文件格式(java,c,python等)执行此操作.

解决方法:

对于词法分析器/解析器生成器,应查看ANTLR. TXL是文本转换解释器,也值得一看.现成的语法应同时适用于两者.

标签:lexer,java,parsing
来源: https://codeday.me/bug/20191106/2001669.html