1017-编译原理绪论

计算机程序设计语言及编译

在这里插入图片描述
在这里插入图片描述

编译器在语言处理系统中的位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编译系统的结构

在这里插入图片描述

人工英汉翻译的例子

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编译器的结构

在这里插入图片描述
在这里插入图片描述

词法分析/扫描(Scanning)

词法分析的主要任务
从左向右逐行扫描源程序的字符,识别出各个单词,确定单词的类型。
将识别出的单词转换成统一的机内表示——词法单元(token)形式
token:< 种别码,属性值 >
在这里插入图片描述

例:词法分析后得到的token序列

在这里插入图片描述
在这里插入图片描述

语法分析 ( parsing)

语法分析器(parser)从词法分析器输出的token序列中
识别出各类短语,并构造语法分析树(parse tree)
 语法分析树描述了句子的语法结构
在这里插入图片描述

例1:赋值语句的分析树

在这里插入图片描述

例2:变量声明语句的分析树

在这里插入图片描述
在这里插入图片描述

语义分析的主要任务

收集标识符的属性信息
种属 (Kind)
 简单变量、复合变量(数组、记录、…)、过程、…

语义分析的主要任务
收集标识符的属性信息
种属 (Kind)
类型 (Type)
整型、实型、字符型、布尔型、指针型、…

在这里插入图片描述
收集标识符的属性信息
种属 (Kind)
类型 (Type)
存储位置、长度
值作用域
参数和返回值信息
参数个数、参数类型、参数传递方式、返回值类型、…

在这里插入图片描述

收集标识符的属性信息
语义检查
 变量或过程未经声明就使用
 变量或过程名重复声明
 运算分量类型不匹配
 操作符与操作数之间的类型不匹配
 数组下标不是整数
 对非数组变量使用数组访问操作符
 对非过程名使用过程调用操作符
 过程调用的参数类型或数目不匹配
 函数返回类型有误

在这里插入图片描述

常用的中间表示形式

在这里插入图片描述

常用的三地址指令

在这里插入图片描述

三地址指令的表示

在这里插入图片描述

三地址指令的四元式表示

在这里插入图片描述

中间代码生成的例子

在这里插入图片描述

编译器的结构

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林林林ZEYU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值