《语义出理概述》PPT课件.ppt
《《语义出理概述》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《语义出理概述》PPT课件.ppt(21页珍藏版)》请在三一办公上搜索。
1、第七章语法制导翻译和中间代码生成,7.1语义处理概述7.2属性文法和语法制导翻译7.3 中间代码生成(一些语句的翻译)7.4符号表,源语言程序,中间代码,汇编代码,词法分析,语义分析,语法分析,中间代码生成,代码生成,在编译中的逻辑阶段,前端处理,后端处理,语义处理,7.1 语义处理(语义分析和中间代码生成),源语言程序,汇编代码,词法分析,语义分析,语法分析,代码生成,前端处理,后端处理,语义处理,语义处理,语义处理,语义处理的任务:静态语义检查静态语义:语法规则的良形式条件静态语义检查:审查静态语义动态语义处理动态语义:程序单元执行的操作动态语义处理:生成(中间/目标)代码,语义处理,语义
2、处理的实现:属性文法:描述语义规则。语法制导翻译:在语法分析的同时,执行语义规则描述的动作:检查静态语义生成中间代码/目标代码,语义处理,语义处理的环境:符号表为语义分析提供类型、作用域等信息。为代码生成提供类型、作用域、存储类别、存储(相对)位置等信息。,语义处理,if sym=callsym thenbegingetsym;if sym identthen error(14)elsebegin i:=position(id);if i=0 then error(11)elsewith tablei doif kind=procedurthen gen(cal,lev-level,adr)e
3、lse error(15);getsymend end,PL/0编译程序的语义处理(一)call语句的处理,语义处理,error 11:标识符未说明;error 12:赋值语句中,赋值号左部的标识符属性应为 变量;error 15:call后标识符的属性应为过程;error 21:表达式内标识符属性不能为过程;error 32:read语句括号中的标识符不是变量。,PL/0编译程序的语义处理(二)语义错误列表,PL/0编译器的符号表,const a=10;var b,c;procedure p;begin c:=b+a;end;begin read(b);while b#0 do begin
4、call p;write(2*c);read(b);endend.,编译程序分析到第8行时符号表的内容,const a=10;var b,c;procedure p;begin c:=b+a;end;begin read(b);while b#0 do begin call p;write(2*c);read(b);endend.,(0)jmp 0 8 转向主程序入口(1)jmp 0 2 转向过程p入口(2)int 0 3 过程p入口,为过程p开辟空间(3)lod 1 3 取变量b的值到栈顶(4)lit 0 10 取常数10到栈顶(5)opr 0 2 次栈顶与栈顶相加(6)sto 1 4 栈顶
5、值送变量c中(7)opr 0 0 退栈并返回调用点(16)(8)int 0 5 主程序入口开辟5个栈空间(9)opr 0 16 从命令行读入值置于栈顶(10)sto 0 3 将栈顶值存入变量b中(11)lod 0 3 将变量b的值取至栈顶(12)lit 0 0 将常数值0进栈(13)opr 0 9 次栈顶与栈顶是否不等(14)jpc 0 24 等时转(24)(条件不满足转)(15)cal 0 2 调用过程p(16)lit 0 2 常数值2进栈(17)lod 0 4 将变量c的值取至栈顶(18)opr 0 4 次栈顶与栈顶相乘(2*c)(19)opr 0 14 栈顶值输出至屏幕(20)opr 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语义出理概述 语义 概述 PPT 课件

链接地址:https://www.31ppt.com/p-5606369.html