2013-04-28 22 views
0

當編譯器編譯一個過程時,我知道有一個'聯動約定'用於確保在這種情況下調用者和被調用者的環境很好地排序。聯動約定

編譯器如何知道不同的鏈接是否「安全」。我假設這意味着只要來自調用者的相同輸入爲調用者輸出相同的輸出,那麼這些聯繫就「相當」,因此「安全」,因爲他們不會以任何方式搞亂調用者。儘管編程語言的例子是什麼?我會說,也許當不同的庫使用不同版本的語言編譯時,你可以在主類中調用它們,但一切正常。

編譯器如何改變調用序列和鏈接約定以使這些被認爲是「安全」的這些不同「變體」鏈接能夠做什麼?

回答

0

編譯器可以知道,如果使用變體鏈接總是知道調用過程的上下文,那麼它是安全的。例如,如果某個過程對於一個類是私有的,並且只能從該類調用,而沒有其他地方,則可以將鏈接約定更改爲該類的特定狀態。你不能用圖書館做到這一點。