網(wǎng)站制作NEWS
典型的編譯器可以劃分成幾個(gè)主要的邏輯階段
這是我們今天的作業(yè),
典型的編譯器可以劃分成七個(gè)主要的邏輯階段,分別是詞法分析器、語(yǔ)法分析器、語(yǔ)義分析器、中間代碼生成器、獨(dú)立于機(jī)器的代碼優(yōu)化器、代碼生成器、依賴于機(jī)器的代碼優(yōu)化器。各階段的主要功能:
(1)詞法分析器:詞法分析閱讀構(gòu)成源程序的字符流,按編程語(yǔ)言的詞法規(guī)則把它們組成詞法記號(hào)流。
(2)語(yǔ)法分析器:按編程語(yǔ)言的語(yǔ)法規(guī)則檢查詞法分析輸出的記號(hào)流是否符合這些規(guī)則,并依據(jù)這些規(guī)則所體現(xiàn)出的該語(yǔ)言的各種語(yǔ)言構(gòu)造的層次性,用各記號(hào)的第一元建成一種樹(shù)形的中間表示,這個(gè)中間表示用抽象語(yǔ)法的方式描繪了該記號(hào)流的語(yǔ)法情況。
(3)語(yǔ)義分析器:使用語(yǔ)法樹(shù)和符號(hào)表中的信息,依據(jù)語(yǔ)言定義來(lái)檢查源程序的語(yǔ)義一致性,以保證程序各部分能有意義地結(jié)合在一起。它還收集類(lèi)型信息,把它們保存在符號(hào)表或語(yǔ)法樹(shù)中。
(4)中間代碼生成器:為源程序產(chǎn)生更低級(jí)的顯示中間表示,可以認(rèn)為這種中間表示是一種抽象機(jī)的程序。
(5)獨(dú)立于機(jī)器的代碼優(yōu)化器:試圖改進(jìn)中間代碼,以便產(chǎn)生較好的目標(biāo)代碼。通常,較好是指執(zhí)行較快,但也可能是其他目標(biāo),如目標(biāo)代碼較短或目標(biāo)代碼執(zhí)行時(shí)能耗較低。
(6)代碼生成器:取源程序的一種中間表示作為輸入并把它映射到一種目標(biāo)語(yǔ)言。如果目標(biāo)語(yǔ)言是機(jī)器代碼,則需要為源程序所用的變量選擇寄存器或內(nèi)存單元,然后把中間指令序列翻譯為完成同樣任務(wù)的機(jī)器指令序列。
(7)依賴于機(jī)器的代碼優(yōu)化器:試圖改進(jìn)目標(biāo)機(jī)器代碼,以便產(chǎn)生較好的目標(biāo)機(jī)器代碼。
多重隨機(jī)標(biāo)簽