Tag: 死代码

什么是AST,CFG,CLANG,我们如何在死码去除算法中使用它?

我将使用C语言为我们的团队编写一个用于在线事件的死代码删除算法。 要求是…… 读取C程序源文件,其中包含多种forms的死代码。 我们的输出应该是一个文件,它没有任何死码。 在浏览互联网时,我们遇到了SO链接…… 我怎么知道代码中的哪些部分从未使用过? 传统C / C ++项目中的死代码检测 在看到这些链接之前,我们有了基本的想法……使用普通文件流逐行读取输入C文件并存储在字符串数组中。 然后分析这些字符串并确定非常基本的死代码,如if(0)和if(1)等。并制作一个堆栈,用于维护括号。 还有更多…… 但这有一个很大的问题,这个想法将引导我们用字符串操作做更多事情,而不是删除死码。 但看到这些链接后…我们开始了解Clang库,抽象语法树,控制流图等… 但我们对这些图书馆和那些概念都是新手。 我们开始知道它们用于解析C代码。 因此,我们需要一些关于AST,CFG和一些基本指导的基本想法,解释我们如何在我们的代码中使用它… 我们可以将clang库作为像math.h这样的普通库包含在内吗? 我们在哪里可以下载该库? 我们可以在Windows中使用那些Clang库吗?