new《編譯原理》第五章

new《編譯原理》第五章

ID:39973704

大?。?.53 MB

頁數(shù):193頁

時(shí)間:2019-07-16

new《編譯原理》第五章_第1頁
new《編譯原理》第五章_第2頁
new《編譯原理》第五章_第3頁
new《編譯原理》第五章_第4頁
new《編譯原理》第五章_第5頁
資源描述:

《new《編譯原理》第五章》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、編譯原理CompilerPrinciples蔣凌云jianglingyun@njupt.edu.cn南京郵電大學(xué).計(jì)算機(jī)學(xué)院第五章語法制導(dǎo)翻譯及中間代碼生成compilingrunningprogramming教材:《編譯技術(shù)原理及其實(shí)現(xiàn)方法》王汝傳編著第五章語法制導(dǎo)翻譯及中間代碼生成本章內(nèi)容§5.1語法制導(dǎo)翻譯概述一、語法制導(dǎo)翻譯定義二、語法制導(dǎo)翻譯原理三、語法制導(dǎo)翻譯實(shí)現(xiàn)§5.2中間語言一、引言二、逆波蘭表示三、三元式四、樹形表示五、四元式第五章語法制導(dǎo)翻譯及中間代碼生成本章內(nèi)容§5.3自底向上語法

2、制導(dǎo)翻譯一、簡(jiǎn)單算術(shù)表達(dá)式和賦值語句的翻譯二、布爾表達(dá)式的翻譯三、控制語句翻譯*************************************四、數(shù)組元素的翻譯五、過程語句的翻譯六、說明語句的翻譯§5.4自頂向下語法制導(dǎo)翻譯一、遞歸下降的語法制導(dǎo)翻譯二、LL(1)語法制導(dǎo)翻譯§5.5屬性文法與屬性翻譯一、屬性文法與L屬性文法二、屬性翻譯第五章語法制導(dǎo)翻譯及中間代碼生成本節(jié)內(nèi)容§5.1語法制導(dǎo)翻譯概述一、語法制導(dǎo)翻譯定義二、語法制導(dǎo)翻譯原理三、語法制導(dǎo)翻譯實(shí)現(xiàn)§5.2中間語言一、引言二、逆波蘭表

3、示三、三元式四、樹形表示五、四元式§5.1語法制導(dǎo)翻譯概述本節(jié)內(nèi)容一、語法制導(dǎo)翻譯定義二、語法制導(dǎo)翻譯原理三、語法制導(dǎo)翻譯實(shí)現(xiàn)第五章語法制導(dǎo)翻譯及中間代碼生成§5.1語法制導(dǎo)翻譯概述在前面我們已經(jīng)討論了詞法分析和語法分析,一個(gè)程序成功地通過詞法分析和語法分析,只能說明它是一個(gè)合法程序,但是對(duì)程序內(nèi)部的邏輯含義并未加以考慮,從整個(gè)編譯程序來看,詞法分析和語法分析僅僅是編譯程序的一部分,編譯程序最終的目的是將源程序翻譯成可供計(jì)算機(jī)直接執(zhí)行的目標(biāo)程序。在某些編譯程序中,是直接生成機(jī)器語言或匯編語言形式的目標(biāo)代

4、碼;有些編譯程序是把源程序翻譯為某種形式中間語言代碼,然后再把中間語言代碼翻譯為目標(biāo)代碼。下面就來介紹一種語法制導(dǎo)翻譯方法,這種方法先將源程序單詞序列翻譯成中間語言,然后再將中間語言翻譯成目標(biāo)程序。那么,什么叫語法制導(dǎo)翻譯呢?第五章語法制導(dǎo)翻譯及中間代碼§5.1語法制導(dǎo)翻譯概述一、語法制導(dǎo)翻譯定義二、語法制導(dǎo)翻譯原理三、語法制導(dǎo)翻譯實(shí)現(xiàn)第五章語法制導(dǎo)翻譯及中間代碼§5.1語法制導(dǎo)翻譯概述一、語法制導(dǎo)翻譯定義二、語法制導(dǎo)翻譯原理三、語法制導(dǎo)翻譯實(shí)現(xiàn)§5.1語法制導(dǎo)翻譯概述一、語法制導(dǎo)翻譯定義語法制導(dǎo)翻譯就

5、是以語法分析為主導(dǎo)的語義處理。在自頂向下語法分析過程中嵌入語義動(dòng)作,即調(diào)用對(duì)應(yīng)的語義子程序。例如在前面語法分析時(shí)分析a+b*c表達(dá)式,其分析語法樹如下:E+EE*EEabc語法分析是將a歸約E,再將b歸約E,將c歸約為E,然后再將E*E歸約成E,再將E+E歸約成E,所以a+b*c是一個(gè)合法的句子。如果考慮語義,在歸約過程中加上語義動(dòng)作,先將a歸約為E,將a值賦給E后,b歸約成E,同時(shí)將b值賦給E,在將c值賦給E,然后再將b*c(E*E)給E,最后再將左右兩個(gè)E值相加就是最終結(jié)果,這就是語法制導(dǎo)翻譯的基本

6、思想,在語法分析同時(shí)進(jìn)行語義分析。第五章語法制導(dǎo)翻譯及中間代碼§5.1語法制導(dǎo)翻譯概述一、語法制導(dǎo)翻譯定義二、語法制導(dǎo)翻譯原理三、語法制導(dǎo)翻譯實(shí)現(xiàn)第五章語法制導(dǎo)翻譯及中間代碼§5.1語法制導(dǎo)翻譯概述一、語法制導(dǎo)翻譯定義二、語法制導(dǎo)翻譯原理三、語法制導(dǎo)翻譯實(shí)現(xiàn)§5.1語法制導(dǎo)翻譯概述二、語法制導(dǎo)翻譯原理語法制導(dǎo)翻譯的原理就是先為每個(gè)文法規(guī)定相應(yīng)的語義,即編寫出相應(yīng)語義處理子程序,整個(gè)分析是以語法分析為主導(dǎo)。在自頂向下語法分析時(shí),若某一個(gè)規(guī)則右部與輸入串相匹配時(shí),或者,在自底向上語法分析時(shí),當(dāng)一個(gè)規(guī)則被用于

7、歸約時(shí),此時(shí)該規(guī)則對(duì)應(yīng)的語義子程序就進(jìn)入工作,完成既定翻譯任務(wù),產(chǎn)生與語義相應(yīng)的中間代碼或目標(biāo)代碼。語義動(dòng)作:給每個(gè)文法符號(hào)X賦以各種不同的語義值這里的語義值不一定指具體數(shù)值,可以是“類型”、“種屬”、“地址”或“代碼”等,我們用記號(hào)X·TYPE、X·CAT或X·VAL來表示這些值。如果某規(guī)則的右部有若干個(gè)同一符號(hào)出現(xiàn),那么我們就用上角標(biāo)來區(qū)別這些符號(hào)。例如,假定有如下規(guī)則和語義動(dòng)作:例如,假定有如下規(guī)則和語義動(dòng)作:E∷=E(1)+E(2){E·VAL:=E(1)·VAL+E(2)·VAL}語義動(dòng)作寫

8、在規(guī)則之后的花括號(hào)里,這里語義動(dòng)作是表明與規(guī)則左部文法符號(hào)E相關(guān)的語義值E·VAL,它是通過把規(guī)則右部文法符號(hào)的語義值E(1)·VAL和E(2)·VAL加在一起來決定的,規(guī)則中終結(jié)符號(hào)“+”按語義規(guī)則被解釋成通?!凹印钡囊馑肌8饕?guī)則的語義動(dòng)作可以對(duì)表達(dá)式計(jì)算,也可以生成中間代碼,甚至還可以來產(chǎn)生目標(biāo)指令。例5.1設(shè)有文法E∷=E+EE∷=digit這里digit代表0和9之間任一數(shù)字,如果我們的目的僅是為了求值,則語義動(dòng)作如下(1)E

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。