编译原理复习笔记 第一章 绪论

编译原理第一章

1-1

1.计算机设计语言
在这里插入图片描述
2. 编译系统
在这里插入图片描述
可重定位:内存中存放的起始位置不定
加载器:修改可重定位地址
连接器:链接库文件;将多个可重定位代码连接到一起;解决外部内存地址

1-2 编译系统结构

  1. 词法分析:分析词性

    语法分析:识别句子中的各类短语,分析句子结构

    语义结构:根据句子结构,分析短语成分

  2. 编译器结构
    在这里插入图片描述
    中间表示形式:独立于任何语言

1-3 词法分析概述

  1. “从左向右”扫描源程序字符,识别单词,确定单词类型,表示为token形式
    Token:<种别码,属性值>
    在这里插入图片描述

1-4 语法分析概述

  1. 从词法分析器输出的token序列中识别各类短语,并构造语法分析树

1-5 语义分析概述

  1. 收集标识符的属性信息——种属,类型,存储位置、长度,值,作用域,参数和返回值信息
  2. 符号表:
    在这里插入图片描述
    NAME字段:(1)标识符在字符串表的起始位置(2)标识符长度
    3,语义(错误)检查

1-6 中间代码及编译器后端

  1. 中间代码的常见表示形式:
    (1)三地址码
    四元式表示形式
    (2)语法结构树/语法树

  2. 目标代码生成:分配寄存器

  3. 代码优化

思考:符号表中NAME字段的设计:
NAME字段长度不固定,若要将NAME直接存入符号表造成空间浪费、效率低;加入索引可节省空间、便于管理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值