《程序设计语言与编译》课程PPT教学课件(高职)第二十三讲 控制语句也可采用改写文法的方法

七.控制语句也可采用改写文法的方法 S→ ifb then s ifB then S, else S2 while b do s 可将上述文法改写为:
七. 控制语句也可采用改写文法的方法 S→if B then S1 │if B then S1 else S2 │while B do S1 可将上述文法改写为:

C→→ ifb then T→>CS1else W→ while R→WBdo S→CS1TS1|RS1
C→if B then T→C S1 else W→while R→W B do S→C S1 | T S1 | R S1

C→→ ifb then i backpatch(B truelist, ip) C netlist: =B. falselist T→→CS1else i g: ip; emt6220); ); backpatch(C netlist, p T netlist: merge(q (q, s netlist))
C→if B then { backpatch(B.truelist, ip); C.nextlist:=B.falselist } T→C S1 else { q:=ip; emit(j,-,-,0); backpatch(C.nextlist,ip); T.nextlist:=merge(q, S1 .nextlist) }

W→ while ( Wcode = ip R→WBdo backpatch(B truelist, p R netlist =B. falselist R code: =Wcode j
W→while { W.code:=ip } R→W B do { backpatch(B.truelist,ip); R.nextlist:=B.falselist; R.code:=W.code }

S→CS Snetlist: merge (C. nxtlisrt, S,. nextlist)) S→TS1 iS netlist: -merge(T. nxtlisrt, S netlist)) S→RS1 backpatch(S,. nextlist, R code) emit(, ",",Rcode); S netlist: R netlist
S→C S1 { S.nextlist:=merge(C.nxtlisrt, S1 .nextlist) } S→T S1 { S.nextlist:=merge(T.nxtlisrt, S1 .nextlist) } S→R S1 { backpatch(S1 .nextlist,R.code); emit(j,-,-,R.code); S.nextlist:=R.nextlist }

八.数组元素按列存放时的处理 D=a+(in-In*dn- *dn-2..d +(in1-n1)*dn2*dn3*….*d ++(212)*d1+(i1-1) D=CONSPART+ VARPART CONSPART=a-C C=ln*dn1*dn2*….*d1+ln1*dn2*dn3*…,*d1 .+12*d1+1 VARPART=n*dn1*dn2*…*d1+in1*dn2*dn32…,*d1+…+i2*d1+i1 (.((n0dn1+in1)*dn2+in2)*dn3+..+i2)*d1+i
八. 数组元素按列存放时的处理 D=a+(in -ln )*dn-1*dn-2*…*d1 +(in-1 -ln-1 )*dn-2*dn-3*…*d1 +…+(i2 -l2 )*d1+(i1 -l1 ) D=CONSPART+VARPART CONSPART=a-C C=ln*dn-1*dn-2*…*d1 +ln-1*dn-2*dn-3*…*d1 +…+l2*d1+l1 VARPART =in*dn-1*dn-2*…*d1 +in-1*dn-2*dn-3*…*d1 +…+i2*d1+i1 =(. . .((in*dn-1+in-1 )*dn-2+ in-2 )*dn-3 +. . .+i2 )*d1+i1

方法 VARPART的值不能按下标式的出现顺序 从左到右进行累计,它必须待所有下标 式都处理完毕之后,再从右到左进行计 算 设置一个栈 STACK,记录每个下标式结 果值的存放单元。待到所有下标式都处 理完毕之后,再自栈顶而下,按 VARPART的算式,累计它的值
方法: VARPART的值不能按下标式的出现顺序 从左到右进行累计,它必须待所有下标 式都处理完毕之后,再从右到左进行计 算。 设置一个栈STACK,记录每个下标式结 果值的存放单元。待到所有下标式都处 理完毕之后,再自栈顶而下,按 VARPART的算式,累计它的值

为Elis赋予一个语义属性 STACK 不用改写文法 A→V:=E V→[Elist] Elist→ Elist1,E|E E→E1opE2|E1|(E1)|V
为Elist赋予一个语义属性STACK 不用改写文法 A→V:=E V→i[Elist]│i Elist→Elist1 ,E | E E→E1 op E2│-E1│(E1 )│V

九.自上而下语法制导翻译概说 方法: 每个非终结符对应一个递归过程(函数) 一有关语义值作为函数值返回 在产生式的中间可以调用语义子程序
九. 自上而下语法制导翻译概说 方法: ·每个非终结符对应一个递归过程(函数) ·有关语义值作为函数值返回 ·在产生式的中间可以调用语义子程序

1.控制语句的翻译 s->ifb then si l if b then Sl else $2 while b do s1 A
1.控制语句的翻译 S→if B then S1 if B then S1 else S2 while B do S1 A
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十七讲 栈式分配.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十六讲 运行时存储空间管理.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十讲 含数组元素的赋值语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十二讲 一类控制语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二讲 强制式语言.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第八讲 控制结构.ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第一章 计算机应用的数学基础(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第五章 材料数据库与专家系统 (汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第四章 计算机辅助材料的测试与分析(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第三章 相图的计算机分析与计算(汤爱涛).ppt
- 重庆大学材料学院:《计算机在材料工程中的应用》第二章 材料科学中的数值模拟与计算(汤爱涛).ppt
- 《photoshop》讲义(电子课件).doc
- 《计算机图形学》课程教学资源:第2章 实面积图形的生成(赵立强).ppt
- 《Matlab入门教程》教学资源:学习参考资料.doc
- 《计算机网络技术教程》第9章 各种n7网络工作站的连接.ppt
- 《计算机网络技术教程》第8章 NT网络中的TCP/IP管理.ppt
- 《计算机网络技术教程》第7章 构建Windows NT网络.ppt
- 《计算机网络技术教程》第6章 Intranet网络管理.ppt
- 《计算机网络技术教程》第5章 Internet基础.ppt
- 《计算机网络技术教程》第4章 广域网实用组网技术.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十四讲 代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十五讲 循环优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十一讲 一类说明语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第九讲 SIMULA 67协同程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第六讲 类型检查.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第七讲 抽象数据类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第三讲 程序单元.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十八讲 SLR分析表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十二讲 编译概述.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十讲 程序设计语言和编译程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十九讲 代码生成和代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十六讲 优先关系表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十七讲 LR分析法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十三讲 自顶向下语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十四讲 预测分析程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十五讲 自底向上语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十一讲 自动机.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第四讲 用户定义类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第五讲 组合类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第一讲 绪论(主编:王晓斌).ppt