補充:PL0編譯程序的實現(xiàn)ppt課件.ppt

補充:PL0編譯程序的實現(xiàn)ppt課件.ppt

ID:59255474

大小:313.00 KB

頁數(shù):56頁

時間:2020-09-27

補充:PL0編譯程序的實現(xiàn)ppt課件.ppt_第1頁
補充:PL0編譯程序的實現(xiàn)ppt課件.ppt_第2頁
補充:PL0編譯程序的實現(xiàn)ppt課件.ppt_第3頁
補充:PL0編譯程序的實現(xiàn)ppt課件.ppt_第4頁
補充:PL0編譯程序的實現(xiàn)ppt課件.ppt_第5頁
資源描述:

《補充:PL0編譯程序的實現(xiàn)ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第二章PL/0編譯程序的實現(xiàn)本章目的:以PL/0為例學習編譯程序?qū)崿F(xiàn)的基本步驟和相關(guān)技術(shù),熟悉并理解編譯程序的基本原理和概念。1PL/0編譯程序pcode解釋程序PL/0源程序pcode代碼注:此處的pcode代碼專指PL/0的目標碼,注意與傳統(tǒng)pcode的區(qū)別2第二章PL/0編譯程序的實現(xiàn)步驟1、認識源語言PL/0與目標代碼pcode及它們之間的映射步驟2、PL/0編譯程序的總體設計步驟3、PL/0編譯程序詞法分析的設計與實現(xiàn)步驟4、PL/0編譯程序語法語義分析的設計與實現(xiàn)3第二章PL/0編譯程序的實現(xiàn)步驟5、PL

2、/0編譯程序代碼生成的實現(xiàn)步驟6、PL/0編譯程序語法錯誤處理的實現(xiàn)步驟7、pcode代碼解釋器的設計與實現(xiàn)4步驟1、認識源語言PL/0與目標代碼pcode及它們之間的映射何為PL/0語言?認識目標代碼pcodePL/0程序到pcode代碼的映射5何為PL/0語言?PL/0語言:PASCAL語言的子集,功能簡單,結(jié)構(gòu)清晰,可讀性強,具備了一般高級語言的必備部分PL/0程序示例PL/0的非形式描述PL/0的語法描述圖PL/0語言文法的EBNF表示6PL/0程序示例CONSTA=10; VARB,C; PROCEDURE

3、P; VARD; PROCEDUREQ; VARX; BEGIN READ(X); D:=X; WHILEX#0DOCALLP; END;BEGIN WRITE(D); CALLQ; END; BEGIN CALLP; END.7PL/0非形式描述數(shù)據(jù)類型只有整型標識符的有效長度是10,以字母開始的字母數(shù)字串數(shù)最多為14位過程無參,可嵌套(最多三層),可遞歸調(diào)用變量的作用域同PASCAL,常量為全局的,無標號8PL/0非形式描述語句類型:賦值語句,if...then...,while...do...,read,wri

4、te,call,復合語句begin...end,說明語句:const...,var...,procedure…13個保留字:if,then,while,do,read,write,call,begin,end,const,var,procedure,odd9PL/0的語法描述圖語句constidentnumber=,;varident,procedureident分程序分程序;;;分程序.程序10PL/0語言文法的EBNF表示BNF與EBNF的介紹BNF(BACKUS-NAURFORM)是根據(jù)美國的JohnW.Bac

5、kus與丹麥的PeterNaur來命名的,它從語法上描述程序設計語言的元語言。采用BNF就可說明哪些符號序列是對于某給定語言在語法上有效的程序。11PL/0語言文法的EBNF表示BNF與EBNF的介紹BNF引入的符號: <>用左右尖括號括起來的語法成分為非終結(jié)符 ∷=‘定義為’

6、‘或’ EBNF引入的符號: {}表示花括號內(nèi)的語法成分可重復 []表示方括號內(nèi)的語法成分為任選項 ()表示圓括號內(nèi)的成分優(yōu)先12PL/0語言文法的EBNF表示BNF與EBNF的介紹 一個用EBNF描述的例子: <整數(shù)>∷=[+

7、-]<

8、數(shù)字>{<數(shù)字>} <數(shù)字>∷=0

9、1

10、2

11、3

12、4

13、5

14、6

15、7

16、8

17、913PL/0語言文法的EBNF表示BNF與EBNF的介紹 <整數(shù)>∷=[+

18、-]<非零數(shù)字>{<數(shù)字>}

19、0 <非零數(shù)字>∷=1

20、2

21、3

22、4

23、5

24、6

25、7

26、8

27、9 <數(shù)字>∷=0

28、1

29、2

30、3

31、4

32、5

33、6

34、7

35、8

36、914PL/0語言文法的EBNF表示PL/0語言文法的EBNF表示 〈程序〉∷=〈分程序〉. 〈分程序〉∷=[〈常量說明部分〉][〈變量說明部分〉][〈過程說明部分〉]〈語句〉 〈常量說明部分〉∷=CONST〈常量定義部分〉{,〈常量定義〉

37、}; 〈無符號整數(shù)〉∷=〈數(shù)字〉{〈數(shù)字〉} 〈變量說明部分〉∷=VAR〈標識符〉{,〈標識符〉}; 〈標識符〉∷=〈字母〉{〈字母〉

38、〈數(shù)字〉} ……15認識目標代碼pcode目標代碼pcode是一種假想棧式計算機的匯編語言。指令格式flaf功能碼l層次差a根據(jù)不同的指令有所區(qū)別16170jmp081jmp022int033lod134lit0105opr02次棧頂與棧頂相加6sto147opr008int05在運行棧中申請5個棧空間9opr016從命令行讀入輸入置于棧頂10sto03將棧頂值存入變量11cal02

39、調(diào)用過程12lod04將變量取至棧頂13opr014棧頂值輸出至屏幕14opr015換行15opr00SL0DL0RA0變量1變量2RA12SL0DL0運行棧consta=10; varb,c; procedurep; begin c:=b+a; end; begin read(b); callp; write(c); end.SL:靜態(tài)鏈DL

當前文檔最多預覽五頁,下載文檔查看全文

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

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