编译原理章节整理2

bjfu编译原理整理,仅供参考

编译原理章节整理2

第五章

语义分析的任务

•程序中容易出现各种语义错误:

–标识符未声明   y = x+3;

–操作数的类型与操作符的类型不匹配 y = x*3;

–数组下标变量的类型出错  A[x];

属性文法、语法制导翻译的含义

自底向上和自顶向下语法制导翻译的区别

自底向上:在产生式规约的同时调用相应的语义子程序

自顶向下:将语义子程序嵌入到每个递归过程中

生成中间代码的目的,中间代码的几种形式(后缀式、四元式、三元式、间接三元式、AST、DAG )

具体见PPT,第五章39张开始

掌握PL/0编译程序的语义分析方法

第六章

编译程序在其工作过程中使用最多的数据结构是表,在这些表中,符号表最为重要,它的生存期最长、使用最频繁。

掌握符号表的作用、内容、组织(多采用散列法)

明确错误处理的两种方法:错误校正和局部化处理

掌握PL/0编译程序符号表的填写和查找方法

具体看PPT第六章

第七章

静态存储分配(Fortran)和动态(栈和堆)存储分配(C、Pascal)的含义,能够以C/C++、JAVA语言为例详细阐述

详细阐述PPT上三C++和Java都可以找到详细描述

活动记录的含义及组成

掌握PL/0的存储分配策略(三个联系单元SL、DL、RA的含义)

第八章

明确代码优化的目的和分类

掌握基本块内的三种优化方法:合并常量、删除公共子表达式和删除无用赋值

掌握循环优化的三种优化方法:代码外提、强度削弱和删除归纳变量

第九章

实现一个代码生成器,重点应该考虑两个问题

① 如何使生成的目标代码尽可能的短

② 如何充分利用计算机的寄存器,减少目标代码中访问内存的次数

要求明确目标代码的三种不同形式的优缺点

① 可立即执行的机器语言代码

② 待装配的机器语言代码,又称相对目标代码

③ 汇编语言代码

略,8张PPT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值