我正在寻找一种工具来检查两个 (C) 源代码文件是否生成相同的二进制文件,以便我可以找到两个文件之间的实际功能变化,而忽略单纯的编码风格变化。 如果这甚至适用于不同变更集的文件,那就太好了,这样一个文件可能在某些地方的编码风格发生了变化,但也添加了一个功能补丁。
最佳答案
很难编写一个程序来计算另一个程序的“功能”结果。这样的程序听起来似乎是必要的。我猜计算机程序本身是正确的,我们甚至必须以最紧凑和机器可读的方式来描述功能,因此很难编写一个程序来分析程序并生成“更好”的描述。
以某种方式抽象和“理解”编码风格差异不会影响功能听起来也非常非常困难。我发现以某种方式手动阅读其他人的代码时很难,因为风格差异可能非常大,即使最终结果可能与“我的风格”相同。
如果解决方案不需要解决 halting problem 问题,我会感到惊讶,这在一般情况下被证明是不可能的。
关于c - 查找文件的两个修订版之间的功能更改(编译差异?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873185/