簡體   English   中英

我的Fortran編譯器的中間代碼生成:DAG或四倍

[英]Intermediate Code Generation for my Fortran compiler: DAG or quadruples

我正在使用Flex和Bison編寫一個小型Fortran編譯器。 到目前為止,我已經完成了詞法和語法分析。 我正在進行類型檢查的語義分析,現在必須選擇一個IR。 我的目標機器是MIPS。 所以我想要基於MIPS IAS的最終代碼生成。 因此,我認為好的IR是四倍的。 但是我想介紹一些優化。 因此,我建立了一個DAG結構(使用哈希表)。 IR有2條路徑:四倍或DAG,然后四倍。

如果我將DAG用作IR,我如何使用backpatching方法處理語句? 使用四倍,這將很容易。 另一方面,DAG更為抽象。 我將不得不將其轉換為四倍。 我知道。 我的擔心正在修補。

我相信您在專注於高級設計時會擔心低級細節。 此外,當前的編譯器不使用四倍,而使用SSA(靜態單一分配)。 對於最終的代碼生成,也許看看LCC編譯器,他們使用一種簡單的方法通過樹匹配來發出局部最優代碼。

作弊的一種方法是只發出一種高級語言(如C),而將繁重的工作留給它的編譯器(並且您可以免費獲得可移植性;-)。

我不知道Usenet小組的comp.compilers是否以某種形式存在,但是FAQ是我的第一站。 不過,可能過時了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM