联系惯例

时间:2013-04-28 20:31:53

标签: compiler-construction linkage procedures

当编译器编译过程时,我知道有一个'链接约定'用于确保在这种情况下调用者和被调用者的环境得到很好的整理。

编译器如何知道不同的链接是否“安全”。我认为这意味着只要来自调用者的相同输入为调用者产生相同的输出,那么这些链接是“等效的”因此它们是“安全的”,因为它们不会以任何方式扰乱调用者。虽然编程语言的例子是什么?我想说也许当使用不同版本的语言编译不同的库并在主类中调用它们时,一切正常。

编译器可以改变调用序列和链接约定,以使这些不同的“变体”链接被认为是“安全的”?

1 个答案:

答案 0 :(得分:0)

编译器可以知道,如果变量链接始终知道将调用过程的上下文,则使用变量链接是安全的。例如,如果一个过程对一个类是私有的,并且只能从该类调用而不能在其他地方调用,则可以将链接约定更改为特定于该类状态的某些内容。您无法使用库来执行此操作。