2011-03-19 37 views
0

我試圖確定編譯順序列出在一個文本文件的功能。你爲什麼問?我們在工作中使用業務規則管理語言IDE,在遠程VM上運行非常慢。我正在尋找一種方法來編譯Java應用程序中的代碼。確定「編譯訂單」

我已經有一個Java應用程序,在所有功能和其他必要的文件(代碼,函數名等)到存儲器中讀取。我希望能夠在我的應用程序中包含一種確定函數需要編譯的順序的方法。

例如:

function B() { 
//Do Stuff 
} 

Integer globalVariable = 0; 

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

功能B必須功能A.前宣佈我想只能夠通過各功能進行掃描,並看到「函數A調用B」所以B前必須申報爲全局變量A.同樣的事情(是的,我們正在使用的語言有全局),所以全局變量必須聲明函數之前,於二

謝謝使用!爲了解決這種問題

+0

那麼什麼優勢究竟該不願透露姓名的語言必須平衡掉不需要的聲明順序要求和全局變量? – 2011-03-19 02:40:49

+0

對不起,我不認爲我明白你的意思? – Tempster102 2011-03-19 02:42:31

+0

如果您需要經歷使用慢速IDE和陳舊語言的負擔,那麼肯定它必須具有某種令人敬畏的贖回質量,才能證明它的使用是正確的? – 2011-03-19 02:45:35

回答

1

一種方法是將它表示爲一個有向非循環圖,其中,每個函數(或全局變量)是圖的節點,和圖形的邊表示的依賴關係。因此,您的示例將具有節點「A」,「B」和「globalVariable」以及邊緣「A-> B」和「A-> globalVariable」。

然後,你想要的順序可以通過在圖形上做一個Topological sort來計算。