码迷,mamicode.com
首页 > 其他好文 > 详细

编译原理绪论

时间:2020-03-14 19:59:58      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:机器   输入   问题   源程序   代码生成器   载器   序列   文件中   代码   

基本概念

  • 编译:将高级语言翻译成汇编语言或机器语言的过程

    技术图片

  • 预处理器:聚合不同文件中的源程序;将宏转换为原始语句;

  • 加载器:修改可重定位地址;绝对地址 = 起始位置 + 相对地址;

  • 连接器:连接多个可重定位的机器代码文件;解决外部内存地址问题;

编译系统结构

技术图片

词法分析器

  • 扫描源程序,识别各个单词并确定其类型,将其转换为统一的机内表示:词法单元(token)形式

  • token:<种别码,属性值>

语法分析器

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

语义分析器

  • 收集标识符属性信息:种属、类型、储存位置、长度、值、作用域、参数和返回值
  • 语义检查

中间代码生成器

  • 常用中间表示形式:
    • 三地址码:类似汇编语言;最多三个操作数;
      • 四元式(op,y,z,x)
      • 三元式
      • 间接三元式
  • 语法结构树/语法树

代码优化器

  • 使代码运行更快,占空间更少的等价程序变换

目标代码生成器

  • 输入源程序的中间表示形式,并把它映射到目标语言
  • 为程序中使用的变量合理分配寄存器

编译原理绪论

标签:机器   输入   问题   源程序   代码生成器   载器   序列   文件中   代码   

原文地址:https://www.cnblogs.com/localhost-ha/p/12493777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!