补充:PL0编译程序的实现ppt课件.ppt

补充:PL0编译程序的实现ppt课件.ppt

ID:59255474

大小:313.00 KB

页数:56页

时间:2020-09-27

补充:PL0编译程序的实现ppt课件.ppt_第1页
补充:PL0编译程序的实现ppt课件.ppt_第2页
补充:PL0编译程序的实现ppt课件.ppt_第3页
补充:PL0编译程序的实现ppt课件.ppt_第4页
补充:PL0编译程序的实现ppt课件.ppt_第5页
资源描述:

《补充:PL0编译程序的实现ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章PL/0编译程序的实现本章目的:以PL/0为例学习编译程序实现的基本步骤和相关技术,熟悉并理解编译程序的基本原理和概念。1PL/0编译程序pcode解释程序PL/0源程序pcode代码注:此处的pcode代码专指PL/0的目标码,注意与传统pcode的区别2第二章PL/0编译程序的实现步骤1、认识源语言PL/0与目标代码pcode及它们之间的映射步骤2、PL/0编译程序的总体设计步骤3、PL/0编译程序词法分析的设计与实现步骤4、PL/0编译程序语法语义分析的设计与实现3第二章PL/0编译程序的实现步骤5、PL

2、/0编译程序代码生成的实现步骤6、PL/0编译程序语法错误处理的实现步骤7、pcode代码解释器的设计与实现4步骤1、认识源语言PL/0与目标代码pcode及它们之间的映射何为PL/0语言?认识目标代码pcodePL/0程序到pcode代码的映射5何为PL/0语言?PL/0语言:PASCAL语言的子集,功能简单,结构清晰,可读性强,具备了一般高级语言的必备部分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非形式描述数据类型只有整型标识符的有效长度是10,以字母开始的字母数字串数最多为14位过程无参,可嵌套(最多三层),可递归调用变量的作用域同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)是根据美国的JohnW.Bac

5、kus与丹麦的PeterNaur来命名的,它从语法上描述程序设计语言的元语言。采用BNF就可说明哪些符号序列是对于某给定语言在语法上有效的程序。11PL/0语言文法的EBNF表示BNF与EBNF的介绍BNF引入的符号: <>用左右尖括号括起来的语法成分为非终结符 ∷=‘定义为’

6、‘或’ EBNF引入的符号: {}表示花括号内的语法成分可重复 []表示方括号内的语法成分为任选项 ()表示圆括号内的成分优先12PL/0语言文法的EBNF表示BNF与EBNF的介绍 一个用EBNF描述的例子: <整数>∷=[+

7、-]<

8、数字>{<数字>} <数字>∷=0

9、1

10、2

11、3

12、4

13、5

14、6

15、7

16、8

17、913PL/0语言文法的EBNF表示BNF与EBNF的介绍 <整数>∷=[+

18、-]<非零数字>{<数字>}

19、0 <非零数字>∷=1

20、2

21、3

22、4

23、5

24、6

25、7

26、8

27、9 <数字>∷=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、}; 〈无符号整数〉∷=〈数字〉{〈数字〉} 〈变量说明部分〉∷=VAR〈标识符〉{,〈标识符〉}; 〈标识符〉∷=〈字母〉{〈字母〉

38、〈数字〉} ……15认识目标代码pcode目标代码pcode是一种假想栈式计算机的汇编语言。指令格式flaf功能码l层次差a根据不同的指令有所区别16170jmp081jmp022int033lod134lit0105opr02次栈顶与栈顶相加6sto147opr008int05在运行栈中申请5个栈空间9opr016从命令行读入输入置于栈顶10sto03将栈顶值存入变量11cal02

39、调用过程12lod04将变量取至栈顶13opr014栈顶值输出至屏幕14opr015换行15opr00SL0DL0RA0变量1变量2RA12SL0DL0运行栈consta=10; varb,c; procedurep; begin c:=b+a; end; begin read(b); callp; write(c); end.SL:静态链DL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。