查找重复的源代码

发布于 2024-10-13 01:48:05 字数 228 浏览 4 评论 0原文

我正在分析一些遗留代码。大约有 80.000 行旧 plsql 代码。乍一看,源代码中有相当多的重复内容需要删除。必须有一些工具/命令行配置来检测源代码的重复行,而不是执行 diff 手册并查看每个文件。

我的目标是对源代码重写的最小规模以及该程序中捕获了多少实际知识做出有根据的猜测。我编写了一些基本的静态代码分析器来查找每个文件中的控制语句 IF ELSE FOR 等和函数的数量。 但重复的代码仍然需要从我的统计中删除。

I'm analyzing some legacy code. It is about 80.000 lines of old plsql code. On a fist look there is quite some duplication in the source which needs to be removed. Instead off doing diff's manual and looking at each file there must be some tool/commandline confu out there to detect duplicate lines of source code.

My goal is to make an educated guess about the minimal size of a rewrite of source and about how much actual knowledge is captured in this program. I wrote some a basic static code analyzer to find the amount of control statements IF ELSE FOR etc and Functions in each file.
But duplicated code still needs to be removed from my statistics.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

忆伤 2024-10-20 01:48:05

您看过Simian - 相似度分析器吗? (刚刚检查过,它不再免费,但可以使用 15 天进行评估。)

Simian(相似性分析器)
识别 Java、C#、C 中的重复,
C++、COBOL、Ruby、JSP、ASP、HTML、XML、
Visual Basic、Groovy 源代码和
甚至纯文本文件。事实上,猿猴
可以用于任何人类可读的
文件,例如 ini 文件、部署
描述符,你能想到的。

我已经在实践中使用过并且效果很好。

Have you looked at Simian - Similarity Analyser? (Just checked and it's no longer free, but it is available for a period of 15 days for evaluation purposes.)

Simian (Similarity Analyser)
identifies duplication in Java, C#, C,
C++, COBOL, Ruby, JSP, ASP, HTML, XML,
Visual Basic, Groovy source code and
even plain text files. In fact, simian
can be used on any human readable
files such as ini files, deployment
descriptors, you name it.

I have used it in practice and it does work well.

琴流音 2024-10-20 01:48:05

Sonar 具有重复检测功能,并声称支持 PL/SQL,尽管我从未使用过它。

Sonar has duplication detection and claims to support PL/SQL, though I've never used it for that.

献世佛 2024-10-20 01:48:05

您需要乞求/借用/窃取/编写 plsql 解析器并比较生成的抽象语法树。考虑到您拥有的代码库的大小,这可能是值得的。完成后,解析器还有其他用途。

You would need to beg/borrow/steal/write a plsql parser and compare the resulting abstract syntax trees. With the size of the code base you have, that might be worthwhile. There would be other uses for the parser once you're done.

葮薆情 2024-10-20 01:48:05

怎么样:

http://sourceforge.net/projects/sddforeclipse/

它是开源的,并且是据说是商业软件使用的。顺便说一下,它是 Eclipse 的一个插件。

How about this:

http://sourceforge.net/projects/sddforeclipse/

It is opensource, and is said to be used by commercial software. It is a plugin to Eclipse, by the way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文