Compiler construction 为什么我们需要ABI和呼叫约定

Compiler construction 为什么我们需要ABI和呼叫约定,compiler-construction,Compiler Construction,为什么编译器程序员事先了解ABI和调用约定很重要 对于某些编码语言,例如:C++如果用于为项目生成代码的所有工具都由同一实体生成,则这些工具可以以其认为合适的任何方式处理函数调用,而不必使用与输入中其他任何人相同的约定。然而,在许多情况下,能够使用不同的工具构建项目的不同部分是很有用的。让不同的工具使用相同的调用约定将使使用工具1构建的函数可以从使用工具2构建的函数调用,并反过来调用由工具3构建的函数,即使三个工具的制造商完全不知道其他工具的存在

为什么编译器程序员事先了解ABI和调用约定很重要


对于某些编码语言,例如:
C++

如果用于为项目生成代码的所有工具都由同一实体生成,则这些工具可以以其认为合适的任何方式处理函数调用,而不必使用与输入中其他任何人相同的约定。然而,在许多情况下,能够使用不同的工具构建项目的不同部分是很有用的。让不同的工具使用相同的调用约定将使使用工具1构建的函数可以从使用工具2构建的函数调用,并反过来调用由工具3构建的函数,即使三个工具的制造商完全不知道其他工具的存在