编译原理 第一章

第1章

1.1 什么是编译

计算机语言的分类:

  • 高级语言
    • 类自然语言
  • 汇编语言
    • 含助记符
  • 机器语言
    • 可以被计算机直接理解

编译就是将高级语言转化为汇编或者机器语言。

语言处理系统的结构:

  • 源程序
    • 预处理器:把存储在不同文件中的源程序聚合在一起,并把被称为宏的编写语句转换位原始语句。
  • 经过预处理的源程序
  • 编译器
  • 汇编语言程序
  • 汇编器
    • 可重定位的机器代码:可重定位:在内存中存放的起始位置不是固定的
    • 起始位置+相对位置=绝对位置
  • 连接器/加载器
    • 加载器:修改可重定位地址,将修改后的指令和数据放到内存中适当的位置
    • 连接器:将多个可重定位的机器代码问题链接到一起;解决外部内存地址问题。
  • 目标机器代码

1.2 编译系统结构

  • 分析部分(源语言有关):
    • 语法分析
    • 词法分析
    • 语义分析
  • 桥梁阶段
  • 综合部分(目标代码有关):
    • 目标代码生成
    • 机器代码的优化

1.3 词法分析概述

  • 主要任务:一次扫描识别各个单词,确定类型并转化为同一形式

  • token:(种别码, 属性值)

1.4 语法分析概述

从最小元出发构成分析树。

1.5 语义分析概述

  • 符号表——收集标识符的属性信息

    • 种属 kind
    • 类型 type
    • 存储位置、长度
    • 作用域
    • 参数和返回信息
  • 语义检查

    也就是语法的检查

1.6 中间代码分析和综合部分概述

常用的中间表示形式:三地址码、语法树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值