0

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

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

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

4

1 回答 1

0

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

于 2013-04-30T11:24:30.300 回答