[問題] compiler 該如何處理這種 circular dependency
以 java 的語法為例 (這種 dependency 是合法的):
class A {
void funcA(B b) {
b.funcB(this); // A depends on B
}
}
class B {
void funcB(A a) {
a.funcA(this); // B depends on A
}
}
Compiler 在處理 A 的時候, 必須知道 B 的定義才能處理 b.funcB(),
但是要定義 B, 又必須知道 A 的定義才能處理 a.funcA()...
我現在寫的 compilier 是先掃第一次只定義所有型別的介面, 再掃第二次
處理 method 內的 statements; 但是在處理 statements 的時候可能會遇到
新的型別, 就又要回去定義, 整個架構變得有點亂...
想問問有沒有人知道一般 compiler 是用什麼架構處理這種問題的?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.144.115
推
07/14 15:07, , 1F
07/14 15:07, 1F
→
07/14 15:07, , 2F
07/14 15:07, 2F
→
07/14 15:08, , 3F
07/14 15:08, 3F
→
07/14 18:33, , 4F
07/14 18:33, 4F
推
07/14 20:17, , 5F
07/14 20:17, 5F
→
07/14 20:18, , 6F
07/14 20:18, 6F
→
07/14 21:58, , 7F
07/14 21:58, 7F
→
07/14 22:01, , 8F
07/14 22:01, 8F
→
07/14 22:02, , 9F
07/14 22:02, 9F
→
07/14 22:04, , 10F
07/14 22:04, 10F
→
07/15 11:04, , 11F
07/15 11:04, 11F
→
07/15 11:10, , 12F
07/15 11:10, 12F
推
07/15 11:42, , 13F
07/15 11:42, 13F
→
07/15 11:43, , 14F
07/15 11:43, 14F
PLT 近期熱門文章
PTT數位生活區 即時熱門文章