【发布时间】:2011-07-26 17:09:39
【问题描述】:
我被要求开发一个软件,它应该能够创建输入 Java 源代码的流程图/控制流。所以我开始研究它并得出以下解决方案:
要创建流程图/控制流,我必须识别给定源代码中的控制语句和函数调用现在我有两种识别方法:
- 通过编写我自己的语法来解析源代码(我认为这是一个复杂的解决方案)。我正在考虑为此使用 Antlr。
- 以文本形式读取输入源代码文件并搜索特定模式(可能效率低下)
我在这里吗?或者我错过了一些非常基本和简单的东西?哪种方法会花费更少的时间并有效地完成工作?在这方面的任何其他建议也将受到欢迎。任何其他有效的方法都会有所帮助,因为输入源代码可能跨越多个文件并且可能相当复杂。
我精通 .NET 语言,但这是我的第一个 Java 大项目。我有编译器设计的基本知识,所以写语法对我来说应该不是不可能的。
对不起,如果我不清楚。请要求任何澄清。
【问题讨论】:
-
听起来是个有趣的项目。您可以使用 Eclipse GMP eclipse.org/modeling/gmp 等框架在图形端节省一些工作如果您要使用基于文本的方法(这可能就足够了,取决于输入的复杂性),您可以使用 Java 注释 @987654322 @
-
您不想构建语法,并尝试自己构建它。如果你很好并且有很好的工具,这将花费你一年的时间。有许多 Java 解析器,其中一些具有控制流分析作为选项;使用其中一种,继续你的生活。
-
我很乐意选择一个答案。
-
@jmg:嗯,这很难......因为所有方法都不同但同样适用......这使得答案的选择变得主观......
标签: java algorithm parsing compiler-construction logic