Skip to content

Commit

Permalink
typo
Browse files Browse the repository at this point in the history
  • Loading branch information
MROS committed Sep 20, 2024
1 parent 76eedb4 commit 0deb287
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion book/結丹流程概覽(通用編譯流程).md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

這張圖中可以看到,在源碼跟目標碼兩種格式之中,硬生生插入了一個中介形式出來,這個中介形式通常是抽象語法樹,或是某種接近機器碼,但以比特定機器碼更有結構的中介碼,最知名的例子就是 LLVM IR。

為什麼一定要有這個中介形式呢?如果是目標碼只有一種的編譯器,很可能不會有生出中介碼的步驟,而是直接從語法樹就變出機器語言了。此時生成語法樹之前叫前端,語法樹之後叫後端,就只是約定俗成的稱呼罷了,大致象徵著編譯程序已經把源碼轉換成有結構的形式,接下來就是優化跟生成目的碼了
為什麼一定要有這個中介形式呢?如果是目標碼只有一種的編譯器,很可能不會有生出中介碼的步驟,而是直接從語法樹就變出機器語言了。此時生成語法樹之前叫前端,語法樹之後叫後端,就只是約定俗成的稱呼罷了,大致象徵著編譯程序已經把源碼轉換成有結構的形式,接下來就是優化跟生成目標碼了

然而,當源碼跟目標碼不只一種時,中介形式的存在能省去大量的重複工作。

Expand Down

0 comments on commit 0deb287

Please sign in to comment.