2011-03-19 5 views
0

텍스트 파일에 함수를 나열 할 컴파일 순서를 결정하려고합니다. 왜 물어? 원격 VM에서 매우 느리게 실행되는 직장에서 비즈니스 규칙 관리 언어 IDE를 사용합니다. Java 응용 프로그램에서 코드를 컴파일하는 방법을 찾고 있어요.'컴파일 순서'결정

이미 모든 기능과 기타 필요한 파일 (코드, 함수 이름 등)을 메모리로 읽는 Java 응용 프로그램이 있습니다. 내 응용 프로그램에 함수를 컴파일해야하는 순서를 결정할 수있는 방법을 포함하고 싶습니다.

예를 들어

:

기능 B이 기능 A. 전에 선언해야합니다
function B() { 
//Do Stuff 
} 

Integer globalVariable = 0; 

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

난 그냥 각 기능을 통해 스캔 B가 전에 선언해야하므로 '기능 A가 B를 호출'볼 수 있도록하고 싶습니다 A. 전역 변수 (예 : 사용하는 언어에 Globals가 있음)와 동일하므로 globalVariable은 사용되는 함수 앞에 선언해야합니다.

고마워요!

+0

이렇게 이름없는 언어가 불필요한 선언 순서 요구 사항과 전역 변수의 균형을 정확히 맞추려면 어떤 이점이 있습니까? –

+0

죄송합니다 무슨 말씀인지 이해하지 못하겠습니까? – Tempster102

+0

느린 IDE와 고어를 사용하는 부담을 극복해야 할 필요가있을 때, 확실히 처음부터 그 사용법을 정당화하기 위해 어떤 종류의 굉장한 상환 품질이 있어야합니까? –

답변

1

이러한 종류의 문제를 해결하는 한 가지 방법은 각 함수 (또는 전역 변수)가 그래프의 노드이고 그래프의 가장자리가 종속성을 나타내는 방향 비순환 그래프로 표현하는 것입니다. 예를 들어 "A", "B"및 "globalVariable"과 가장자리 "A-> B"및 "A-> globalVariable"이 있습니다.

그런 다음 그래프에서 Topological sort을 수행하여 원하는 순서를 계산할 수 있습니다.