动态绑定与动态链接正交.
我想知道如何理解正交的含义“?是不是因为
- compilation of source code into machine code is like going deep, and linkage of various machine codes is like going horizontal, and so they are orthogonal to each other,
- (static/dynamic) name binding is a concept in compilation
- static/dynamic linking is a concept in linkage?
。
谢谢!
发布于 2011-03-27 18:19:44
“正交”是指一个人的存在或地位(在更抽象的意义上)根本不依赖于另一个人的相应地位。在这种特殊情况下,这意味着无论动态绑定是否发生,动态链接都可能发生,反之亦然。
作为一个实际示例,请考虑动态绑定是在运行时解析在源代码中出现的函数调用的结果应该执行哪些代码。这段代码可能存在于链接时链接到可执行文件的库中(静态链接),也可能出现在运行时动态加载的库中(动态链接)。绑定部分不关心链接是如何完成的;因此,它与后者是正交的。
你还会问:
如果在动态链接中,任何涉及的绑定,即任何涉及对象(数据和/或代码)与标识符的关联,都是动态绑定吗?
这个问题毫无意义,因为在连接过程中没有约束力。绑定可能是静态的(编译器解析并放入对象代码中)或动态的(在运行时解析),但是如何绑定的决定和解析绑定的逻辑根本不与链接交互。
https://stackoverflow.com/questions/5449876
复制相似问题