這一部分,我們將基于之前創(chuàng)建好的抽象語(yǔ)法樹(shù)為源代碼生成具體的匯編語(yǔ)言代碼。在這之前,我們先來(lái)看看下面這段源代碼對(duì)應(yīng)生成的匯編代碼的內(nèi)容:...
上一部分,我們算是對(duì)匯編語(yǔ)言開(kāi)了個(gè)頭,介紹了基本操作指令相關(guān)的內(nèi)容。這一部分,我們重點(diǎn)研究匯編語(yǔ)言的另外一塊內(nèi)容:棧幀結(jié)構(gòu)。 7.3 棧...
前面我們已經(jīng)詳細(xì)分析并實(shí)現(xiàn)了簡(jiǎn)易C語(yǔ)言的前處理、詞法分析、語(yǔ)法分析和語(yǔ)義分析過(guò)程,最終得到了一棵沒(méi)有語(yǔ)法錯(cuò)誤、節(jié)點(diǎn)相互關(guān)系清晰的抽象語(yǔ)法...
這一部分,我們研究語(yǔ)義分析中剩下的的流程和類(lèi)型檢查。 6.2 流程檢查 還是以我們前面舉例使用的那段源代碼作為例子,經(jīng)過(guò)聲明檢查...
繞來(lái)繞去,千辛萬(wàn)苦,我們終于創(chuàng)建了抽象語(yǔ)法樹(shù),完成了對(duì)整個(gè)源代碼結(jié)構(gòu)性的分析,似乎可以喘一口氣了。但是,對(duì)于下面的代碼: 可以得到下面的...
緊接著上一部分抽象語(yǔ)法樹(shù)的內(nèi)容。在這一部分,我們將利用這些定義好的節(jié)點(diǎn)(磚塊)和抽象語(yǔ)法描述(水泥)搭建起完整的抽象語(yǔ)法樹(shù)。 同詞...
我們已經(jīng)重新抽象描述了C語(yǔ)言的表達(dá)式、語(yǔ)句和聲明,并且進(jìn)行了實(shí)現(xiàn)。如果大家對(duì)在實(shí)現(xiàn)中出現(xiàn)的并沒(méi)有過(guò)多解釋的Binop和Negative這...
到這里,我們已經(jīng)研究了詞法分析中表達(dá)式和語(yǔ)句的描述和實(shí)現(xiàn)。這一部分,我們接著剖析聲明這一塊內(nèi)容。 3.3 聲明(declaration)...
我們緊接著上一部分的內(nèi)容,繼續(xù)討論表達(dá)式。 有了上一部分的基礎(chǔ),相信大家對(duì)這樣的抽象描述已經(jīng)有所了解了。類(lèi)似的,我們可以直接寫(xiě)出包...