编译原理 语义分析

编译原理 语义分析文章目录 编译原理语义分析

大家好,欢迎来到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

(0)
上一篇 2025-09-02 16:26
下一篇 2025-09-02 16:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信