我正在尝试确定在文本文件中列出函数的编译顺序。你为什么问?我们使用业务规则管理语言IDE,在远程VM上运行速度非常慢。我正在寻找一种从Java应用程序编译代码的方法。
我已经有了一个Java应用程序,它将所有函数和其他所需文件(代码,函数名等)读入内存。我希望能够在我的应用程序中包含一种确定函数需要编译顺序的方法。
例如:
function B() {
//Do Stuff
}
Integer globalVariable = 0;
function A() {
globalVariable = 1337;
B();
}
函数B必须在函数A之前声明。我希望能够扫描每个函数并看到'函数A调用B',因此B必须在A之前声明。对于全局变量同样的事情(是的语言)我们使用的是Globals)所以必须在使用它之前声明globalVariable。
谢谢!
答案 0 :(得分:1)
解决此类问题的一种方法是将其表示为有向非循环图,其中每个函数(或全局变量)是图的节点,图的边表示依赖关系。因此,您的示例将具有节点“A”,“B”和“globalVariable”,以及边缘“A-> B”和“A-> globalVariable”。
然后,您可以通过在图表上执行Topological sort来计算您想要的订单。