ABI是編譯器的開發指南

2021-09-07 11:20:16 字數 467 閱讀 8727

在計算機中,應用二進位制介面描述了應用程式(或者其他型別)和作業系統之間或其他應用程式的低階介面.

abi涵蓋了各種細節,如:

資料型別的大小、布局和對齊;

呼叫約定(控制著函式的引數如何傳送以及如何接受返回值),例如,是所有的引數都通過棧傳遞,還是部分引數通過暫存器傳遞;哪個暫存器用於哪個函式引數;通過棧傳遞的第乙個函式引數是最先push到棧上還是最後;

系統呼叫的編碼和乙個應用如何向作業系統進行系統呼叫;

以及在乙個完整的作業系統abi中,目標檔案的二進位制格式、程式庫等等。

乙個完整的abi,像intel二進位制相容標準 (ibcs) ,允許支援它的作業系統上的程式不經修改在其他支援此abi的操作體統上執行。

abi不同於應用程式介面(api),api定義了源**和庫之間的介面,因此同樣的**可以在支援這個api的任何系統中編譯,abi允許編譯好的目標**在使用相容abi的系統中無需改動就能執行。

Egret引擎開發指南之編譯專案

egret的編譯功能依賴於typescript的編譯功能。實際上typescript的編譯過程並非傳統的將程式源 翻譯為機器可執行的二級制檔案過程。由於瀏覽器能夠識別執行的指令碼只有j ascript,所以typescript的編譯僅僅是把typescript翻譯為對應的j ascript指令碼。我...

編譯器開發(一)

好吧。在學習完編譯原理之後終於自己做了乙個編譯器的前端。當然只是乙個很簡單的前端。前端分為詞法分析,語法分析和語義分析。語法的結構如下 程式 main 語句塊 語句塊 語句串 語句 語句 賦值語句 條件語句 迴圈語句 賦值語句 id 表示式 條件語句 if 條件 語句塊 else 語句塊 迴圈語句 ...

QtCreator MSVC編譯器開發

qt在windows中的編譯,一般使用兩種編譯器,msvc和mingw mingw minimalist gnu for windows 是乙個gcc和gnu binutils的原生軟體埠,用於在windows上開發原生的microsoft windows應用程式。mingw和qt creator以...