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