How does compiling circular dependencies work?
Posted
by Fabio F.
on Stack Overflow
See other posts from Stack Overflow
or by Fabio F.
Published on 2010-06-13T16:02:29Z
Indexed on
2010/06/13
16:22 UTC
Read the original article
Hit count: 199
compiler
|circular-dependency
I've made the example in Java but I think (not tested) that it works in other (all?) languages.
You have 2 files. First, M.java
:
public class MType {
XType x;
MType() {x = null;}
}
Second, another file (in the same directory), XType.java
:
public class XType {
MType m;
public XType(MType m) {this.m = m;}
}
Ok it's bad programming, but if you run javac XType
it compiles: compiles even MType
because XType
needs it. But ... MType
needs XType
... how does that work? How does the compiler know what is happening?
Probably this is a stupid question, but I would like to know how the compiler (javac or any other compilers you know) manages that situation, not how to avoid it.
I'm asking because i'm writing a precompiler and I would like to manage that situation.
© Stack Overflow or respective owner