(0) 编译原理-简介

编译器是一个程序, 将一种语言编写的程序翻译成与之等价的另一种语言编写的程序

编 译 { 分 析 : 将 源 程 序 切 分 成 一 些 基 本 块 , 并 形 成 源 程 序 的 中 间 表 示 综 合 : 将 源 程 序 的 中 间 表 示 转 换 为 所 需 的 目 标 程 序 编译\begin{cases} 分析: 将源程序切分成一些基本块,并形成源程序的中间表示 \\ 综合: 将源程序的中间表示转换为所需的目标程序 \end{cases} {:,:

1. 源程序分析

1. 词法分析: 也叫线性分析扫描

将源程序扫描, 并将其中的运算符和操作数记录为一个个单独的符号

2. 语法分析:也叫层次分析(parsing 或 syntax analysis)

语法分析阶段将词法分析得到的符号组织为一个分析树

程序的层次规则通常是通过递归规则来表达的, 即程序的结构是递归地进行定义

3. 语义分析

语义分析阶段检测源程序中的语义错误, 并收集代码生成阶段需要的类型信息.

语义分析重要的组成部分是类型检查

2. 编译器的各阶段

词法分析器
语法分析器
语义分析器
中间代码生成器
代码优化器
代码生成器

符号表管理错误检测与报告是编译器六个阶段都要涉及的, 因此也可以算入编译器的阶段之一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

fanqiliang630

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

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

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

打赏作者

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

抵扣说明:

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

余额充值