社区
C语言
帖子详情
编译原理--基本快构造dag图算法
kofos
2005-05-20 09:01:43
一个编译器的优化工作
...全文
856
5
打赏
收藏
编译原理--基本快构造dag图算法
一个编译器的优化工作
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sms88
2005-05-22
打赏
举报
回复
up
kofos
2005-05-22
打赏
举报
回复
哪位高人解决一下撒
llf_hust
2005-05-20
打赏
举报
回复
up
mostideal
2005-05-20
打赏
举报
回复
帮你顶了。。。
mostideal
2005-05-20
打赏
举报
回复
帮你顶了。。
由
基本
块
构造
DAG
图
的程序实现(
编译原理
课设报告)
问题描述 输入任意给定的
基本
块,
构造
与之等价的
DAG
图
,并以
图
形方式输出。
基本
要求 输入的形式和输入值的范围 以四元式的形式输入任意给定的
基本
块,即一个字符串,最左边和右边是两个括号(),四个符号之间用三个逗号相隔。 在系统输出,
基本
块对应的三地址代码时。用户应当告诉系统自己以后还要用哪个变量。 输出的形式 (1)以三地址代码方式输出用户输入的
基本
块 (2)以
图
形方式输出
DAG
图
(3)输出化简之后的三地址代码 程序所能达到的功能 用户输入任意给定的
基本
块,先通过三地址代码的方式,将用户输入的
基本
块以三地址的方式进行输出,
构造
出
DAG
,以
图
形的方式进行输出。输出简化之后的三地址代码。
程序设计语言
编译原理
(陈火旺)
编译原理
经典教材 目录 第一章引论 1.1什么叫编译程序 1.2编译过程概述 1.3编译程序的结构 1.3.1编译程序总框 1.3.2表格与表格管理 1.3.3出错处理 1.3.4遍 1.3.5编译前端与后端 1.4编译程序与程序设计环境 1.5编译程序的生成 第二章高级语言及其语法描述 2.1 程序语言的定义 2.1.1语法 2.1.2 语义 2.2 高级语言的一般特性 2.2.1 高级语言的分类 2.2.2程序结构 2.2.3数据类型与操作 2.2.4语句与控制结构 2.3程序语言的语法描述 2.3 上下文无关文法 2.3.2语法分析树与二义性 2.3.3 形式语言鸟瞰 练 习 第三章词法分析 3.1 对于词法分析器的要求 3.1.1词法分析器的功能和输出形式 3.1.2词法分析器作为一个独立子程序 3.2词法分析器的设计 3.2.1输入、预处理 3.2.2 单词符号的识别:超前搜索 3.2.3状态转换
图
3.2.4状态转换
图
的实现 3.3正规表达式与有限自动机 3.3.1正规式与正规集 3.3.2确定有限自动机(DFA) 3.3.3非确定有限自动机(NFA) 3.3.4正规文法与有限自动机的等价性 3.3.5 正规式与有限自动机的等价性 3.3.6确定有限自动机的化简 3.4词法分析器的自动产生 3.4.1语言LEX的一般描述 3.4.2超前搜索 3.4.3 LEX的实现 练 习 第四章语法分析——自上而下分析 4.1 语法分析器的功能 4.2 自上而下分析面临的问题 4.3 LL(1)分析法 4.3.1左递归的消除 4.3.2消除回溯、提左因子 4.3.3 LL(1)分析条件 4.4递归下降分析程序
构造
4.5预测分析程序 4.5.1预测分析程序工作过程 4.5.2预测分析表的
构造
4.6 LL(1)分析中的错误处理 练 习 第五章语法分析——自下而上分析 5.1 自下而上分析
基本
问题 5.1.1 归约 5.1.2规范归约简述 5.1.3符号栈的使用与语法树的表示 5.2算符优先分析 5.2.1算符优先文法及优先表
构造
5.2.2算符优先分析
算法
5.2.3优先函数 5.2.4算符优先分析中的出错处理 5.3LR分析法 5.3.1 LR分析器 5.3.2LR(O)项目集族和LR(O)分析表的
构造
5.3.3 SLR分析表的
构造
5.3.4规范LR分析表的
构造
5.3.5 LALR分析表的
构造
5.3.6 二义文法的应用 5.3.7LR分析中的出错处理 5.4语法分析器的自动产生工具YACC 练 习 第六章属性文法和语法制导翻译 6.1属性文法 6.2基于属性文法的处理方法 6.2.1 依赖
图
6.2.2树遍历的属性计算方法 6.2.3 一遍扫描的处理方法 6.2.4抽象语法树 6.3 S-属性文法的自下而上计算 6.4 L-属性文法和自顶向下翻译 6.4.1 翻译模式 6.4.2自顶向下翻译 6.4.3递归下降翻译器的设计 6.5自下而上计算继承属性 6.5.1 从翻译模式中去掉嵌入在产生式中间的动作 6.5.2分析栈中的继承属性 6.5.3模拟继承属性的计算 6.5.4 用综合属性代替继承属 练 习
Spark 3.0.0 Driver 启动内幕
DAG
Scheduler 解析:
DAG
的实例化 、
DAG
Scheduler 划分Stage 的原理、
DAG
Scheduler 划分Stage 的具体
算法
、Stage 内部Task 获取位置的
算法
;TaskScheduler 解析:TaskScheduler 原理剖析、TaskScheduler 源码解析;...
编译原理
代码优化
基本
块
基本
块
构造
DAG
的
算法
for (i=0;i
基本块中四元式的个数*/ { 取出第i四元式Qi; if (NODE(B)==NULL) { 建立一个以B为标记的叶结点,其编号为NODE (B);
编译原理
(第2版)课件
张素琴老师编写的第二版,中英文课件全套 第1章 引论 1.1 什么是编译程序 1.2 编译过程和编译程序的结构 1.2.1 编译过程概述 1.2.2 编译程序的结构 1.2.3 编译阶段的组合 1.3 解释程序和一些软件工具 1.3.1 解释程序 1.3.2 处理源程序的软件工具 1.4 程序设计语言范型 练习第2章 PL/0编程程序的实现 2.1 PL/0语言描述 2.1.1 PL/0语言的语汉描述
图
2.1.2 PL/0语言文法的EBNF表示 2.2 PL/0编译程序的结构 2.3 PL/0编译程序的词法分析 2.4 PL/0编译程序的语法语义分析 2.5 PL/0编译程序的目标代码结构和代码生成 2.6 PL/0编译程序的语法错误处理 2.7 PL/0编译程序的目标代码解释执行时的存储分配 练习第3章 文法和语言 3.1 文法的直观概念 3.2 符号和符号串 3.3 文法和语言的形式定义 3.4 文法的类型 3.5 上下文无关文法及其语法树 3.6 句型的分析 3.6.1 自上而下的分析方法 3.6.2 自下而上的分析方法 3.6.3 句型分析的有关问题 3.7 有关文法实用中的一些说明 3.7.1 有关文法的实用限制 3.7.2 上下文无关文法中的规则 3.8 典型例题解答 练习第4章 词法分析 4.1 词法分析程序的设计 4.1.1 词法分析程序与语法分析程序的接口方式 4.1.2 词法分析程序的输出 4.1.3 将词法分析工作分离的考虑 4.2 单词的描述工具 4.2.1 正规文法 4.2.2 正规式 4.2.3 正规文法和正规式的等性 4.3 有穷自动机 4.3.1 确定的有穷自动机(DFA) 4.3.2 不确定的有穷自动机(NFA) 4.3.3 NFA转换为等价的DFA 4.3.4 确定有穷自动机的化简 4.4 正规式和有穷自动机的等价性 4.5 正规文法和有穷自动机的等价性 4.6 词法分析程序的自动
构造
工具 4.7 典型例题及解答 练习第5章 自顶向下语法分析方法 5.1 确定的自顶向下分析思想 5.2 LL(1)文法的判别 5.3 某些非LL(1)文法到LL(1)文法的等价变换 5.4 不确定的自顶向下分析思想 5.5 确定的自顶向下分析方法 5.5.1 递归子程序法 5.5.2 预测分析方法 5.6 典型例题及解答 练习第6章 自底向上优先分析 6.1 自底向上优先分析概述 6.2 简单优先分析法 6.2.1 优先关系 6.2.2 简单优先文法的定义 6.2.3 简单优先分析法的操作步骤 6.3 算符优先分析法 6.3.1 直观算符优先分析法 6.3.2 算符优先文法的定义 6.3.3 算符优先关系表的
构造
6.3.4 算符优先分析
算法
6.3.5 优先函数 6.3.6 算符优先分析法的局限性 6.4 典型例题及解答 练习第7章 LR分析 7.1 LR分析概述 7.2 LR(0)分析 7.2.1 可归前缀和子前缀 7.2.2 识别活前缀的有限自动机 7.2.3 活前缀及其可归前缀的一般计算方法 7.2.4 LR(0)项目集规范族的
构造
7.3 SLR(1)分析 7.4 LR(1)分析 7.4.1 LR(1)项目集族的
构造
7.4.2 LR(1)分析表的
构造
7.5 LALR(1)分析 7.6 二义性文法在LR分析中的应用 7.7 语法分析程序的自动
构造
工具YACC 7.8 典型例题及解答 练习第8章 语法制导翻译和中间代码生成 8.1 属性文法 8.2 语法制导翻译概论 8.2.1 计算语义规则 8.2.2 S-属性方法和自下而上翻译 8.2.3 L-属性文法在自上而下分析中的实现 8.2.4 L-属性文法在自下而上分析中的实现 8.3 中间代码的形式 8.3.1 逆波壮大记号 8.3.2 三元式和树表表示 8.3.3 四元式 8.4 简单赋值语句的翻译 8.5 布尔表达式的翻译 8.5.1 布尔表达式的翻译方法 8.5.2 控制语句中布尔表达式的翻译 8.6 控制结构的翻译 8.6.1 条件转移 8.6.2 开关语句 8.6.3 for循环语句 8.6.4 出口语句 8.6.5 goto语句 8.6.6 过程调用的四元式产生 8.7 说明语句的翻译 8.7.1 简单说明语句的翻译 8.7.2 过程中的说明 8.8 数组和结构的翻译 8.8.1 数组说明和数组元素的引用 8.8.2 结构(记录)说明和引用的翻译 练习 第9章 符号表 9.1 符号表的作用和地位 9.2 符号的主要属性及作用 9.3 符号表的组织 9.3.1 符号表的总体组织 9.3.2 符号表项的排列 9.3.3 关键字域的组织 9.3.4 其他域的组织 9.3.5 下堆链域的组织 9.4 符号表的管理 9.4.1 符号表的初始化 9.4.2 符号的登录 9.4.3 符号的查找 9.4.4 符号表的分程序结构层次的管理 第10章 目标程序运行时的存储组织 10.1 数据空间的三种不同使用方法和管理方法 10.1.1 静态存储分配 10.1.2 动态存储分配 10.1.3 栈式动态存储分配 10.1.4 堆式动态存储分配 10.2 栈式存储分配的实现 10.2.1 简单的栈式存储分配的实现 10.2.2 嵌套过程语言的栈式实现 10.2.3 分程序结构的存储管理 10.3 参数传递 10.3.1 传值 10.3.2 传地址 10.3.3 过程参数 10.4 过程调用、过程进入和过程返回 练习 第11章 代码优化 11.1 优化技术简介 11.2 局部优化 11.2.1
基本
块的划分 11.2.2
基本
块的变换 11.2.3
基本
块的有向
图
DAG
(Directed Acyclic Graph)表示 11.2.4
DAG
的应用 11.3 控制流分析和循环优化 11.3.1 程序流
图
11.3.2 循环的查找 11.3.3 循环优化 11.4 数据流的分析与全局优化 11.4.1 一些主要的概念 11.4.2 数据流言程的一般形式 11.4.3 到达-定值数据流方程 11.4.4 可用表达式及其数据流方程 11.4.5 活跃变量数据流方程 11.4.6 复写传播 练习 第12章 代码生成 12.1 代码生成概述 12.1.1 代码生成程序在编译系统中的位置 12.1.2 设计代码生成程序的
基本
问题 12.2 一个简单的代码生成程序 12.2.1 计算机模型 12.2.2 待用信息链表法 12.2.3 代码生成
算法
12.3 几种常用的代码生成程序的开发方法 12.3.1 解释性代码生成法 12.3.2 模式匹配代码生成法 12.3.3 表驱动代码生成法 12.4 全局寄存器分配(
图
着色法) 12.4.1 概述 12.4.2
图
着色寄存器分配法的相关技术 12.4.3 示例 12.5 代码生成程序的自动化
构造
12.5.1 模式匹配与动态规划 12.5.2 基于语法制导的代码生成程序自动
构造
技术 12.5.3 基于语义制导的代码生成程序自动
构造
技术 练习 第13章 编译程序的
构造
13.1 编译程序的书写 13.1.1 编译程序的书写语言与T型
图
13.1.2 编译程序的自展技术 13.2 可重定向编译程序 13.2.1 概述 13.2.2 支持可重定向编译的关键技术 13.2.3 常用的可重定编译程序 13.3 GCC的剖析 13.3.1 GCC的总体结构 13.3.2 GCC的中间表示 13.3.3 GCC的机器描述 13.3.4 GCC的代码生成与机器描述的接口 13.4 GCC的定制 13.4.1 GCC的剪裁 13.4.2 GCC编译程序的安装与配置 13.5 GCC的优化 13.5.1 概述 13.5.2 窥孔优化 13.5.3 基于机器描述的窥孔优化 13.5.4 修改GCC源程序的窥孔优化 练习 第14章 面向对象语言的编译 14.1 面向对象语言的
基本
概念 14.2 面向对象语言语法结构及语义处理的特征 14.2.1 面向对象语言的类的语法结构及语义 14.2.2 面向对象语言的有效类、延迟类及延迟成员 14.2.3 面向对象语言的类属类 14.2.4 面向对象语言的继承类 14.3 多态实例变量、多态引用的类型检查及绑定 14.3.1 实例变量和多态引用 14.3.2 静态类型检查及动态类型检查 14.3.3 对象的创建 14.4 面向对象操作的语义 14.4.1 类名的属性
构造
14.4.2 类名的属性及其结构 14.5 类成员名的属性及其结构 14.5.1 类名的属性及其结构 14.5.2 类成员名的属性及其结构 14.6 对象的存储管理及废弃单元回收 14.6.1 对象的三种存储区组织管理方式 14.6.2 静态模型和栈式模型废弃单元的回收 14.6.3 堆式模型废弃单元的回收 练习 第15章 编译程序的面向对象
构造
15.1 编译程序面向对象
构造
的
基本
概念 15.1.1 编译程序的需求 15.1.2 编译程序的分解 15.1.3 类的
构造
层次 15.1.4 类的特性定义 15.2
构造
编译程序的面向对象类库 15.2.1 对传统编译程序
构造
中软件复用的分析 15.2.2 面向对象编译类库的地位 15.2.3 语言编译论的面向对象论域分析 15.3面向对象编译程序的符号表
构造
练习 附录A PL、0编译程序文本 A.1 Pascal版本 A.2 C版本 参考文献
C语言
69,335
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章