![]() |
1
6
如果移植操作正确(由两种语言的专家完成,并准备将源语言的习语翻译成目标语言中最相似的习语),则无法判断是否发生了任何移植操作。 如果移植工作做得不好,您有时可以识别出愚蠢的音译成语…但这很难与那些用他们所知甚少的语言编写新程序的人区分开来,他们只是把习语和他们所知的语言进行了愚蠢的音译;-)。 |
![]() |
2
0
根据隐藏端口的意图付出了多大的努力,可能很容易检测不到。 我将为此任务使用模式识别。想想“特性”,它将表明代码的相似性。从每个代码中提取这些特性并进行比较。 例如: 一个特征可以是相似的符号名。使用ctags或正则表达式提取所有符号,使所有符号都小写,使uniq对这两个列表排序并进行比较。 另一个可能的功能: 类别列表+成员数量,例如:
方法列表+控制块序列。例如:
另一个简单的方法是将代码表示为图片-例如,将代码加载为Word中的文本,并将字体大小设置为1。人类很擅长比较图片。对于代码可视化的另一个想法,您可以检查 http://www.se-radio.net/2009/03/episode-130-code-visualization-with-michele-lanza/ |
![]() |
user70192 · 在JavaScript中实现接口 10 年前 |
![]() |
fkl · 3.x内核中守护进程()内核api的替换是什么 11 年前 |
![]() |
Abhijit · 澄清:移植32到64位 12 年前 |
![]() |
Matthew · 如何将Format函数从VB更新为VB.NET 13 年前 |