思维导图备注

编译系统透视:图解编译原理
首页 收藏书籍 阅读记录
  • 书签 我的书签
  • 添加书签 添加书签 移除书签 移除书签

4.3 语法树转高端gimple

浏览 4 扫码
  • 小字体
  • 中字体
  • 大字体
2022-01-25 03:51:56
请 登录 再阅读
上一篇:
下一篇:
  • 书签
  • 添加书签 移除书签
  • 前言
  • 第1章 运行时结构及编译过程概述
    • 1.1 一个简单C程序的运行时结构
    • 1.2 更为复杂C程序的运行时结构
    • 1.3 编译过程概述
      • 1.3.1 词法分析
      • 1.3.2 语法分析
      • 1.3.3 从语法树到中间代码再到目标代码
  • 第2章 词法分析
    • 2.1 词法分析概要说明
    • 2.2 词法分析过程
    • 2.3 状态转换图
      • 2.3.2 依托状态转换图展现词法分析过程
    • 2.4 GCC实现词法分析的源代码
      • 2.4.2 结合GCC源代码讲解词法分析过程
      • 2.4.3 标识符、数字、字符和字符串的详细分析过程
  • 第3章 语法分析
    • 3.1 语法分析综述
    • 3.2 语法分析思路
    • 3.3 产生式
      • 3.3.2 产生式的具体示例
    • 3.4 匹配产生式,消除左递归
      • 3.4.2 消除左递归
      • 3.4.3 产生式的工作效率
    • 3.5 提取左公因子,消除回溯
      • 3.5.2 用提取过左公因子的产生式再去匹配
      • 3.5.3 对其他产生式都提取左公因子
      • 3.5.4 函数声明和定义两部分产生式的合并
    • 3.6 语法分析结果:语法树
    • 3.7 GCC关于语法分析的源代码解析
      • 3.7.2 全部语句的语法分析
  • 第4章 语法树到目标代码
    • 4.1 总述语法树到中间代码的转化过程
    • 4.2 目标代码到运行时结构的映射
    • 4.3 语法树转高端gimple
      • 4.3.1 语法树到高端gimple的总体步骤及运行时
      • 4.3.2 高端gimple的实际数据结构
      • 4.3.3 语法树转高端gimple的GCC源代码解析
    • 4.4 高端gimple到低端gimple
      • 4.4.1 高端gimple转低端gimple概述
      • 4.4.2 高端gimple转化低端gimple的GCC代码解析
    • 4.5 低端gimple到cfg
      • 4.5.2 低端gimple转cfg的实际过程
    • 4.6 cfg转ssa
    • 4.7 生成RTL
      • 4.7.2 转化RTL阶段的主要步骤
      • 4.7.3 确定初始RTL中的运行时信息
    • 4.8 RTL生成目标代码(汇编)
      • 4.8.2 创建汇编文件
      • 4.8.3 输出汇编文件总入口
      • 4.8.4 全局变量写入汇编文件
      • 4.8.5 函数写入汇编文件
  • 第5章 语句拓展案例的编译过程
    • 5.1 总述各个语句拓展案例的编译过程
    • 5.2 if语句的语法分析
      • 5.2.1 多个变量的声明语句语法分析
      • 5.2.2 if语句的语法分析过程
      • 5.2.3 if…else if语句的语法分析过程
    • 5.3 带标号语句的语法分析
    • 5.4 switch...case、goto、break语句的语法分析过程
      • 5.4.2 goto语句
      • 5.4.3 分析break语句
    • 5.5 do...while、while、for语句的语法分析过程
      • 5.5.1 do…while语句的语法分析
      • 5.5.2 while语句的语法分析过程
      • 5.5.3 for语句的语法分析过程
    • 5.6 各种语句嵌套组合的语法分析过程
      • 5.6.1 两条变量声明语句分析的结果
      • 5.6.2 分析while循环语句
      • 5.6.3 进入if进行分析
      • 5.6.4 进入else进行分析
    • 5.7 所有案例语法树转中间结构的过程
      • 5.7.2 案例1的语法树转高端gimple的代码分析
      • 5.7.3 案例1的高端gimple转低端gimple
      • 5.7.4 案例1的低端gimple到cfg
      • 5.7.5 转化RTL阶段的主要步骤
      • 5.7.6 案例2的语法树转高端gimple
      • 5.7.7 案例3的语法树转高端gimple
  • 第6章 数据拓展案例的编译过程
    • 6.1.2 用户自定义类型数据总述
    • 6.2 基础类型数据的语法分析过程
      • 6.2.1 非浮点型数据的语法分析
      • 6.2.2 浮点型数据的语法分析
    • 6.1.3 指针类型数据总述
    • 6.3 复合类型数据的语法分析过程
      • 6.3.1 数组的语法分析
      • 6.3.2 枚举类型数据的语法分析
      • 6.3.3 struct类型数据的语法分析
      • 6.3.4 union类型数据的语法分析
      • 6.3.5 自定义数据声明和使用的语法分析
    • 6.1.4 作用域和生存期总述
    • 6.4 指针类型数据的语法分析过程
      • 6.4.1 对swap_point函数中指针的语法分析
      • 6.4.2 对指针使用的语法分析
    • 6.1.5 表达式总述
    • 6.5 关于作用域和生存期的语法分析过程
      • 6.5.2 全局变量data语法分析中作用域相关处理过程
      • 6.5.3 fun函数定义的语法分析中作用域相关处理
      • 6.5.4 main函数定义中局部变量声明data作用域处理过程
      • 6.5.5 main函数内部语句块中变量nCount作用域处理过程
      • 6.5.6 main函数中引用变量data时选择相应声明节点的过程分析
      • 6.5.7 main函数中引用变量nCount时选择相应声明节点的过程分析
      • 6.5.8 main函数中退出内部语句块时更新变量作用域过程分析
      • 6.5.9 fun函数中静态变量temp生存期信息的语法分析
    • 6.6 表达式的语法分析过程
      • 6.6.1 if条件中的表达式语法分析
      • 6.6.2 if条件下面“语句”部分的表达式语法分析
    • 6.7 所有案例语法树转中间结构(RTL)的过程
      • 6.7.2 用户自定义数据语法树转高端gimple的过程
      • 6.7.3 指针类型数据语法树转高端gimple的过程
      • 6.7.4 作用域和生存期案例语法树转高端gimple的过程
      • 6.7.5 复杂表达式案例的语法树转高端gimple的过程
  • 第7章 汇编与链接
    • 7.1 汇编器
      • 7.1.2 .o文件格式总体情况介绍
      • 7.1.3 代码段、数据段以及其他各个表项间的关系
      • 7.1.4 从汇编文件到目标文件的实现
      • 7.1.5 汇编器处理的源代码分析
    • 7.2 链接器
      • 7.2.2 多个.o文件链接时通过符号表建立关系
      • 7.2.3 链接时统一计算地址并回填
      • 7.2.4 链接器源代码介绍
      • 7.2.5 库函数的链接
      • 7.2.6 动态链接
  • 第8章 预处理
    • 8.1 文件包含
    • 8.2 宏定义
    • 8.3 条件编译
    • 8.4 带参数的宏定义
  • 附录 RTX定义
暂无相关搜索结果!
    展开/收起文章目录

    二维码

    手机扫一扫,轻松掌上学

    《编译系统透视:图解编译原理》电子书下载

    请下载您需要的格式的电子书,随时随地,享受学习的乐趣!
    EPUB 电子书

    书签列表

      阅读记录

      阅读进度: 0.00% ( 0/0 ) 重置阅读进度