2011-03-20 30 views
0

有人可以用抽象的方式向我解釋這個術語,然後給我一個小例子說明它是如何工作的。在我看來,它與編譯器的前端和後端以及各階段的執行方式有關。我有問題用我自己的話來形容它。編譯器管道的定義

感謝您的答覆 馬蒂亞斯

回答

2

編譯器進行語言轉換:輸入是語言A和輸出是語言B(通常有連接到語言的類型和變換的結果有一些要求)。爲了做到這一點,輸入經歷了編譯器內部的各個階段 - 這些階段形成了管道。
最常用的除法包括3個階段:前端 - 中端 - 後端
前端負責解析輸入語言並執行語法和語義檢查(以確保輸入程序符合語言規範A),然後將其轉換爲中間語言。 Middle End採用中間表示法,通常在其上執行幾個(與語言無關的)優化步驟(儘管可以跳過)。在中間結束之後,所產生的中間語言轉換後的程序被傳遞到後端,後端將其轉換成語言B,通常還執行特定於語言B的一些優化。
三個階段中的每一個也包括幾個步驟。而且所有東西一起構成了編譯器的管道,因爲它基本上是如何通過正在轉換的系統流向程序。