大家好,欢迎来到IT知识分享网。
文章目录
1. 语义与语法的区别
<1> 语法与语义的关系
语法是指语言的结构、即语言的“样子”;语义是指附着于语言结构上的实际含意 ,即语言的“意义”。
对于语法和语义:
语义不能离开语法独立存在;
语义远比语法复杂;
同一语言结构可包含多种含意,不同语言结构可表示相同含意;
语法与语义之间没有明确的界线。
重点:语义分析的两个作用
<3> 语义分析的方法
语法制导翻译
2. 中间代码
重点:要求中间代码具有如下特性,以便于编译器的开发移植和代码的优化:
3.后缀式
定义
算法实现
4.后缀式的计算
5.三地址码
6.四元式主要由四部分组成:
三地址代码
三地址代码是四元式的另一种表示形式
例题有文法 G 和 G 的语法制导翻译如下:
E → E1*T { E.place=newtemp;
emit(*,E1.place,T.place,E.place; }
| T { E.place=T.place; }
T → T1+F { T.place=newtemp;
emit(+,T1.place,F.place,T.place; }
| F { T.place=F.place; }
F → (E) { F.place=E.place; }
| id { F.place=id.name; }
(a) 求句型 (T+F)*id 的短语、直接短语以及句柄;
(b) 根据语法制导翻译写出句子 ab+cd 的中间代码;
© (若 a=3 , b=5 , c=7 , d=8 ,请给出中间代码计算结果;
7.符号表
8. 数组元素的引用
(1)数组元素的地址计算
9. 布尔表达式
布尔表达式的计算有两种方法:数值表示的直接计算和逻辑表示的短路计算
☆ 布尔表达式短路计算的翻译:短路计算的控制流,真出口与假出口,真出口链与假出口链,拉链回填技术(P207 例4.41)(考试热点之一)
10. 控制语句
控制语句的分类:①无条件转移、②条件转移、③循环语句、④分支语句
11.过程的定义与声明
左值和右值
左值式地址,右值是值
根据参数传递的左右值不同
调用可分为:
1.值调用 (传递右值)
2.引用调用 (传递左值)
拉链回填
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128189.html