【问题标题】:Determine 'Compile Order'确定“编译顺序”
【发布时间】:2011-03-19 02:37:37
【问题描述】:

我正在尝试确定在文本文件中列出函数的编译顺序。你为什么问?我们在工作中使用业务规则管理语言 IDE,它在远程 VM 上运行非常缓慢。我正在寻找一种从 Java 应用程序编译代码的方法。

我已经有一个 Java 应用程序,可以将所有函数和其他需要的文件(代码、函数名称等)读入内存。我希望能够在我的应用程序中包含一种方法来确定需要编译函数的顺序。

例如:

function B() {
 //Do Stuff
}

Integer globalVariable = 0;

function A() {
 globalVariable = 1337;
 B();
}

函数 B 必须在函数 A 之前声明。我希望能够扫描每个函数并看到“函数 A 调用 B”,因此 B 必须在 A 之前声明。全局变量也是如此(是的语言我们使用的是全局变量),因此 globalVariable 必须在使用它的函数之前声明。

谢谢!

【问题讨论】:

  • 那么这种未命名的语言究竟有什么优势可以平衡不需要的声明顺序要求和全局变量?
  • 抱歉,我不明白你的意思?
  • 如果您需要承受使用缓慢的 IDE 和过时语言的负担,那么它肯定必须具有某种令人敬畏的赎回质量来证明它的使用是合理的吗?
  • @Matti:那你得问问我工作的公司。我只是一个开发者。我并不真正担心未使用的变量或函数。我正在为此工作以在开发环境中使用。生产环境使用构建/部署/升级系统。

标签: java xml business-logic


【解决方案1】:

解决此类问题的一种方法是将其表示为有向无环图,其中每个函数(或全局变量)是图的一个节点,图的边表示依赖关系。因此,您的示例将包含节点“A”、“B”和“globalVariable”,以及边“A->B”和“A->globalVariable”。

然后,您可以通过在图表上执行Topological sort 来计算您想要的顺序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 2023-03-25
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多