Application Programming Interface (API) 是為了讓高階的原始碼相容 (source
compatibility),可以順利編譯;而 Application Binary Interface (ABI) 是為了低階的二進位相容
(binary compatibility),讓 object code 不用重新編譯就可以在相同 ABI 的系統下使用。
跟
ABI 有關的議題包括 calling conventions、byte ordering、暫存器使用、system
call invocation, linking, library behavior, 以及 the binary object
format,由編譯工具鏈強制實施。了解 API 有助於組合語言撰寫、程式最佳化、或編譯工具鏈 hacking。