实验六ARP协议的工作原理 本文关键词:工作原理,协议,实验,ARP
实验六ARP协议的工作原理 本文简介:北京理工大学珠海学院实验报告ZHUHAICAMPAUSOFBEIJINGINSTITUTEOFTECHNOLOGY班级:网络2班学号:1202050210姓名指导教师:高树风成绩实验题目:ARP协议的工作原理实验时间:2013.11.29第一部分、实验目的掌握ARP命令的用法,理解ARP协议原理,理
实验六ARP协议的工作原理 本文内容:
北京理工大学珠海学院实验报告
ZHUHAI
CAMPAUS
OF
BEIJING
INSTITUTE
OF
TECHNOLOGY
班级:网络2班
学号:1202050210姓名
指导教师:高树风
成绩
实验题目:ARP协议的工作原理
实验时间:2013.11.29
第一部分、实验目的
掌握ARP命令的用法,理解ARP协议原理,理解ARP协议的分组格式。
第二部分、实验环境
1.安装科来网络分析系统的连网的Windows
XP主机两台。
2.实验分组:两名同学一组,轮流进行实验。
第三部分、实验内容
用ARP命令查看本机ARP缓存中的内容,ARP命令的参数的使用,捕获ARP分组,分析分组格式和首部各字段的含义。
第四部分、实验步骤
1.观察ARP缓存表的内容
先用arp-d命令清楚本机内容,在通过命令arp
–a
查看本机ARP缓存的内容,分析每个项目的含义。在命令窗口执行命令ping
临机IP,再观察ARP缓存的内容,理解ARP缓存的作用和生成过程。(ping临机后有临机和网关的内容)
2.观察ARP缓存生存时间
反复用命令arp
–a
查看ARP缓存,通过计时观察动态ARP缓存的生存时间。(一分钟以内)
3.观察本机ARP缓存生成过程
在命令行下用arp
–d命令删除PC1上的所有arp表项,然后用ping
临机ip,用该命令来触发arp过程。通过科来网络分析系统捕获分组可以观察arp过程。此时在PC1和PC2上,在命令行下用arp
–a命令即可观察到对方的MAC地址。根据观察到的现象理解arp过程。
4.观察ARP分组格式
启动科来网络分析系统,开始捕获,在命令窗口执行命令ping
临机ip,命令执行完成后,停止捕获,观察ARP分组的内容。
第五部分、结论
完成本次实验后,整理arp命令的用法,各个参数的作用,进一步理解并掌握了ARP缓存的生成过程、ARP缓存的含义、ARP分组的格式以及首部字段的含义。
第六部分、思考
1.
实验过程观察到了动态ARP缓存经过一定时间自动删除,如何生成静态ARP缓存?
答:
可以对每台主机IP和MAC地址静态绑定,通过命令arp
–s可以实现“arp
–s
IP
MAC地址”。
2.
ARP缓存中各个项目的含义是什么?类型字段的类型及含义分别是什么?
答:第一个字段是广播类型的MAC地址,其目标是网络上的所有主机。第二个字段是源MAC地址,第三个字段是协议类型,这里是用ox0800代表封装的上层协议是arp协议。
3
篇2:编译原理-课程教学设计方案
编译原理-课程教学设计方案 本文关键词:设计方案,编译,课程教学,原理
编译原理-课程教学设计方案 本文简介:《编译原理》课程教学设计方案适用专业:计算机科学技术编制人:系部主任:审核人:编制日期:2014年4院15日目录一、《编译原理》课程整体教学设计方案1(一)基本信息1(二)课程设计1(三)考核方案设计5(四)教学组织形式5(五)教学材料5二、课程单元教学方案设计6(一)教学内容161、教案头62、教
编译原理-课程教学设计方案 本文内容:
《编译原理》课程
教学设计方案
适用专业:计算机科学技术
编
制
人:
系部主任:
审
核
人:
编制日期:
2014年4院15日
目
录
一、《编译原理》课程整体教学设计方案1
(一)基本信息1
(二)课程设计1
(三)考核方案设计5
(四)教学组织形式5
(五)教学材料5
二、课程单元教学方案设计6
(一)教学内容16
1、教案头6
2、教学过程设计6
(二)教学内容27
1、教案头7
2、教学过程设计8
(三)教学内容310
1、教案头10
2、教学过程设计10
《编译原理》课程教学设计方案
一、《编译原理》课程整体教学设计方案
(一)基本信息
课程名称:编译原理
学时:72学时
课程类型:专业技能课
学分:3学分
所属系部:计算机科学系
授课对象:二年级学生
先修课程:《数据结构》、《离散数学》
后续课程:《JAVA程序设计》
课程团队负责人及成员:孔玉静
(二)课程设计
1、课程目标设计
(1)能力目标:
培养学生掌握构造编译程序的基本原理与设计方法,为培养计算机语言与大型应用程序的开发人才打下良好的基础。
(2)知识目标:
通过本课程学习,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法。各种语法分析技术和中间代码生成符号表的构造、代码优化、并行编译技术常识及运行时存储空间的组织等基本方法和主要实现技术。
2、课程教学内容设计
序号
教学内容
学时
第1章
引论
8
第2章
编译基础
8
第3章
词法分析
8
第4章
自上而下语法分析
4
第5章
自下而上语法分析
4
第6章
语法制导翻译和中间代码生成
8
第7章
运行时的存储空间组织
8
第8章
优化
4
第9章
目标代码生成
8
第10章
面向对象语言的编译
8
11
综合复习
4
合计
72
3、能力训练项目设计
编号
能力训练
项目名称
学时
能力目标
主要支撑知识
训练方式及步骤
1
查填符号表
8
运用所学知识,选择语言、选择算法(数据结构),编程实现符号表管理程序,读出源程序中的标识符,并在符号表中进行查找,若存在则输出该标识符及其编号和位置;否则将其填入符号表,并分配编号,确定位置,输出标识符表。
搜索算法、标识符解析等
上机指导、组织讨论关键问题。
2
简单词法分析
4
通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力。掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法;掌握词法分析的实现方法;上机调试编出的词法分析程序。
词法分析程序的设计、单词的描述工具、有穷自动机、文法等
上机指导、组织讨论关键和难点问题的解决方案。
3
逆波兰式生成
8
建立运算符优先级表,利用C或Java语言,实现逆波兰式的生成算式,将简单算术表达式转化为逆波兰表达式。输出生成的逆波兰表达式。
栈的运用、中间代码的形式等。
上机指导、组织讨论关键问题。
4
表达式分析
8
通过选用不同的语法分析方法(自上而下或自下而上语法分析方法),编写完整的表达式(或算术表达式)语法分析程序。功能包括:输入符号串,判断该输入串是否为该语言的一个合法的表达式,同时检查语法错误。
自顶向下语法分析方法、自底向上优先分析、LR分析及语法制导和中间代码生成等。
组织讨论关键问题和难点的解决方案。
5
综合实验
8
选用目前世界上普遍采用的语义分析方法──语法制导翻译技术。编程实现LR(k)算法,能根据预先定义的文法规生成LR(k)分析表,并对输入串进行语法分析。
词法分析、语法分析、符号表管理及语义分析等。
组织对关键问题和难点解决方案的讨论。并对完成较好的实验程序进行展示。
4、教学进度表设计
序号
周次
学时
教学目标与主要内容
单元标题
能力目标
能力训练项目编号
知识目标
考核内容与方法
1
1-2
8
引论
1.
理解编译程序的概念;
2.
理解编译的过程;
1
了解编译程序与解释程序的区别;
考查
2
3-4
8
编译基础
1.
理解语法分析树的构造、了解文法的二义性判断方法;
2.
理解句型的分析方法;
1
1.
理解文法、语言的基本概念;
2.
了解字母表,符号串,符号串的头尾,符号串的连接和符号串的方幂等概念;
3.
掌握语言的定义方法、符号串的推导;
4.
了解文法的类型;
考查
3
5-6
8
词法分析
1.掌握正规文法正规式,两者之间的转换;
2.
掌握状态转换图,DFA
,NFA,把NFA变为DFA,
DFA的化简;
3.
掌握正规文法和有穷自动机间的转换;
2
了解词法分析器的功能和输出形式;
考查
4
7
4
自上而下语法分析
1.
了解不确定的自顶向下分析思想;
2.
掌握LL(1)分析方法;
4
1.
了解确定的自顶向下分析思想,掌握First集与Follow集的构造算法;
2.
掌握LL(1)文法的判别方法;
3.
掌握某些非LL(1)文法到LL(1)文法的等价变换方法;
考查
5
8
4
自下而上语法分析
1.
掌握算符优先分析法:直观算符优先分析法,算符优先文法的定义,算符优先关系表的构造;
2.
了解优先函数的构造方法;
4
1.
了解自底向上优先分析法;
2.
了解优先关系的定义,掌握简单优先分析法;
考查
6
9-10
8
语法制导翻译和中间代码生成
1.
掌握布尔表达式的翻译;
2.
掌握控制结构的翻译;
3.
理解数组和结构的翻译;
3
1.
理解属性文法、语法制导翻译方法;
2.
理解中间代码的形式;
3.
掌握简单赋值语句的翻译;
考查
7
11-12
8
运行时的存储空间组织
1.
掌握堆式存储分配;
2.
临时变量的存储分配方法;
3
1.
了解静态存储分配以及动态存储分配的概念;
2.
熟练掌握栈式存储分配方法;
考查
8
13
4
优化
掌握提高代码质量的关键技术;
5
了解和掌握实施优化的过程;
考查
9
14-15
8
目标代码生成
了解代码生成器的自动生成技术;
5
了解简单代码生成器,包括代码生成运算和寄存器的分配;
考查
10
16-17
8
面向对象语言的编译
熟悉编译继承性的应用
5
掌握面向对象语言的基本概念;
考查
5、教学方法与教学手段设计
课堂教学:多媒体教学进行教学,使学生能够很快掌握课程的主要知识和解决问题的方法。
辅导和答疑:以习题课对课程中的重要概念和典型问题的解决方法进行总结和深入讨论,巩固和加深课堂内学到的知识。采用电子邮件方式直接与教师联系进行答疑。
自学与练习:除读懂教科书中所讲内容外,还需大量做题。其目的是要通过做题弄懂、加深对概念的理解,提高解决问题的能力。为此,安排一定的实验上机学时。
(三)考核方案设计
考核方式:学期末随堂测试。考核方式包括机试和平时成绩,具体如下:
机试成绩:考核教学内容,基本理论、概念及解决实际问题的能力,占60%。
平时成绩:包括出勤、课堂表现、课后作业、讨论等分数,占40%。
(四)教学组织形式
教学组织方式主要以班级授课为主
1、教师讲解在完成学习任务过程中必须使用的知识和技术,分析学习任务的内容和要求,学生在教师的辅导下独立完成项目开发任务;
2、最后,教师布置课后的练习任务和进一步学习和阅读的内容。
(五)教学材料
教材:
郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
参考书:
[1]
《编译原理》胡伦骏、徐兰芳、刘建农编,电子工业出版社2002年
[2]
《编译原理》(第二版)蒋立源、康慕宁主编,西北工业大学出版社,2002年
[3]
《编译原理习题精选》陈意云、张昱著,中国科技大学出版社,2002年
[4]
《编译原理与实现》金成植编,高等教育出版社。
二、课程单元教学方案设计
(一)教学内容1
1、教案头
标题:
引论
授课教师:孔玉静
授课班级:12软件、13软件
学时数:8
授课日期:2014-2-24、26;2014-3-3、5
授课地点:2#405、406
教
学
目
标
能力目标
知识目标
其他目标
1.
理解编译程序的概念;
2.
理解编译的过程;
了解编译程序与解释程序的区别;
无
教
学
重
点
1.
编译程序的概念;
2.
编译的过程(词法分析、语法分析、语义分析和中间代码的生成、代码优化、目标代码的生成);
训
练案
例
运用所学知识,编程实现符号表管理程序,读出源程序中的标识符,并在符号表中进行查找,若存在则输出该标识符及其编号和位置;否则将其填入符号表,并分配编号,确定位置,输出标识符表。
参
考
资
料
教材:郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
教
学
体
会
通过本章学习,同学们能够做到以下几点
1、能独立完成自己的任务,进行良好的团队合作,善于动脑,勤于思考,及时发现问题和解决问题;
2、遵守学校的课堂教学规范;
3、主动提问、主动帮助同学解决学习中的问题;
2、教学过程设计
教学过程设计
主要
步骤
教学内容
教学方法
教学手段
学生活动
时间分配
告知
(教学内容、目的)
了解编译程序概念,编译程序的结构,以及每一阶段任务。
项目驱动式教学
多媒体教学
认真听课
8
引入
(项目引入)
基于一种搜索算法,建立表示符表;利用界符进行单词解析;运用文法(自动机)进行标识符识别。
项目驱动式教学
多媒体教学
认真听课
8
实施
(任务驱动)
1.
什么是编译程序;
2.
编译过程和编译程序的结构:编译过程概述,编译程序的结构,编译阶段的组合;
项目驱动式教学
多媒体教学
认真听课
8
深化
(加深对基本能力的认识与体会)
解释程序和一些软件工具:解释程序,处理源程序的软件工具;
项目驱动式教学
多媒体教学
认真听课
8
归纳
(知识/能力/素质)
编译程序的结构,以及每一阶段任务。
项目驱动式教学
多媒体教学
认真听课
8
创新
(拓展)
编译的过程。
项目驱动式教学
多媒体教学
认真听课
8
总结
编译程序,编译过程概述,编译程序的结构,编译程序生成,学习构造编译程序。
项目驱动式教学
多媒体教学
认真听课
8
布置
作业
通过课后的习题,使学生理解编译程序,解释程序和遍的基本概念,掌握编译过程各阶段的任务和编译程序的逻辑结构及其各部分的基本功能。
(二)教学内容2
1、教案头
标题:编译基础
授课教师:孔玉静
授课班级:12软件、13软件
学时数:8
授课日期:2014-3-10、12;2014-3-17、19
授课地点:2#405、406
教
学
目
标
能力目标
知识目标
其他目标
1.
理解语法分析树的构造、了解文法的二义性判断方法;
2.
理解句型的分析方法;
1.
理解文法、语言的基本概念;
2.
了解字母表,符号串,符号串的头尾,符号串的连接和符号串的方幂等概念;
3.
掌握语言的定义方法、符号串的推导;
4.
了解文法的类型;
无
教
学
重
点
上下文无关文法,正则表达式与有限自动机。
训
练
案
例
运用所学知识,编程实现符号表管理程序,读出源程序中的标识符,并在符号表中进行查找,若存在则输出该标识符及其编号和位置;否则将其填入符号表,并分配编号,确定位置,输出标识符表。
参
考
资
料
教材:郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
教
学
体
会
通过本章的学习,同学们掌握了文法的形式定义及语法树等工具的使用,理论性较强!
2、教学过程设计
教学过程设计
主要
步骤
教学内容
教学方法
教学手段
学生活动
时间分配
告知
(教学内容、目的)
1.
了解文法、语言的基本概念;
2.
了解字母表,符号串,符号串的头尾,符号串的连接和符号串的方幂等概念;
3.
掌握语言的定义方法、符号串的推导;
4.
了解文法的类型;
5.
了解语法分析树的构造、文法的二义性判断方法;
6.
了解句型的分析方法;
项目驱动式教学
多媒体教学
认真听课
8分钟
引入
(项目引入)
基于一种搜索算法,建立表示符表;利用界符进行单词解析;运用文法(自动机)进行标识符识别。
项目驱动式教学
多媒体教学
认真听课
8分钟
实施
(任务驱动)
1.
文法的直观概念;
2.
符号和符号串:字母表,符号串,符号串的头尾,符号串的连接,符号串的方幂,符号串集合;
3.
文法和语言的形式定义:文法、直接推导、句型和句子的定义;
4.
文法的类型:0型文法,1型文法,2型文法和3型文法;
5.
上下文无关文法及其语法树:语法树、最左(最右)推导、规范推导和规范句型的定义,文法二义性的判断;
6.
句型的分析文法:自上而下的分析法,自下而上的分析法,短语、直接短语和句柄的定义;
7.
有关文法中的一些说明
:有关文法的实用限制,上下文无关文法中的e规则;
项目驱动式教学
多媒体教学
认真听课
8分钟
深化
(加深对基本能力的认识与体会)
文法和语言的定义;
项目驱动式教学
多媒体教学
认真听课
8分钟
归纳
(知识/能力/素质)
短语、直接短语和句柄的分析;
项目驱动式教学
多媒体教学
认真听课
8分钟
创新
(拓展)
句型的分析;
项目驱动式教学
多媒体教学
认真听课
8分钟
总结
上下文无关文法,文法等价变换,语法树与文法二义性,正规表达式与有限自动机。
项目驱动式教学
多媒体教学
认真听课
8分钟
布置
作业
通过课后的习题,使学生能够理解文法的概念,熟练掌握符号串的推导,语法分析树的构造,文法的二义性判断和对句型的分析。
(三)教学内容3
1、教案头
标题:
词法分析
授课教师:孔玉静
授课班级:12软件、13软件
学时数:8
授课日期:2014-3-24、26;2014-4-2、9
授课地点:2#405、406
教
学
目
标
能力目标
知识目标
其他目标
1.掌握正规文法正规式,两者之间的转换;
2.
掌握状态转换图,DFA
,NFA,把NFA变为DFA,
DFA的化简;
3.
掌握正规文法和有穷自动机间的转换;
了解词法分析器的功能和输出形式;
无
教
学
重
点
1.
词法分析程序:词法分析器的功能和输出形式,词法分析器作为一个独立子程序;
2.
单词的描述工具:正规文法,正规式;
3.
有穷自动机:状态转换图,DFA,NFA,把NFA变为DFA,
DFA的化简;
4.
正规文法和有穷自动机间的转换;
训
练
案
例
简单词法分析
参
考
资
料
教材:郭伟、李义杰主编,编译原理简明教程,清华大学出版社,2011年1月
教
学
体
会
通过本章的学习,同学们掌握正规式与有穷自动机和正规文法与有穷自动机转换。
2、教学过程设计
教学过程设计
主要
步骤
教学内容
教学方法
教学手段
学生活动
时间分配
告知
(教学内容、目的)
熟练掌握正规式与有穷自动机和正规文法与有穷自动机关系;掌握词法分析程序的设计原理与构造方法。
项目驱动式教学
多媒体教学
认真听课
8
引入
(项目引入)
通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力。
项目驱动式教学
多媒体教学
认真听课
8
实施
(任务驱动)
1.
词法分析程序:词法分析器的功能和输出形式,词法分析器作为一个独立子程序;
2.
单词的描述工具:正规文法,正规式;
3.
有穷自动机:状态转换图,DFA,NFA,把NFA变为DFA,
DFA的化简;
4.
正规文法和有穷自动机间的等价;
5.
正规文法和有穷自动机间的转换;
6.
词法分析程序自动构造工具;
项目驱动式教学
多媒体教学
认真听课
8
深化
(加深对基本能力的认识与体会)
1.
单词的描述工具:正规文法,正规式;
2.
有穷自动机:正规文法的状态转换图,DFA,NFA,把NFA变为DFA,
DFA的化简;
项目驱动式教学
多媒体教学
认真听课
8
归纳
(知识/能力/素质)
掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。
项目驱动式教学
多媒体教学
认真听课
8
创新
(拓展)
正规式和有穷自动机间的转换;
项目驱动式教学
多媒体教学
认真听课
8
总结
词法分析器任务,词法分析器设计,词法分析器自动生成。
项目驱动式教学
多媒体教学
认真听课
8
布置
作业
通过课后的习题,使学生能够熟练地掌握正则文法、状态转换图、DFA、NFA、NFA的确定化和最小化,状态转换矩阵到状态转换图的转化,正规式和正规集的基本概念。
篇3:编译原理部分复习材料
编译原理部分复习材料 本文关键词:编译,复习,原理,材料
编译原理部分复习材料 本文简介:1.翻译器:能够完成从一种语言到另一种语言的变化软件。编译器:一种翻译器,它进行语言变换的特点是目标语言比源语言低级。编译的各个阶段:P2词法分析器——》语法分析器——》语义分析器——》中间代码生成器——》独立于机器的代码优化器——》代码生成器——》依赖于机器的代码优化器2.词法记号:由记号名和属性
编译原理部分复习材料 本文内容:
1.
翻译器:能够完成从一种语言到另一种语言的变化软件。
编译器:一种翻译器,它进行语言变换的特点是目标语言比源语言低级。
编译的各个阶段:P2
词法分析器——》语法分析器——》语义分析器——》中间代码生成器——》独立于机器的代码优化器——》代码生成器——》依赖于机器的代码优化器
2.
词法记号:由记号名和属性值构成的二元组,属性值有时不必要。记号名是代表一类词法单元的抽象名字,如标识符、某个特定的关键字。记号名是语法分析的输入符号。通常直接用记号名来引用记号。
模式:记号的模式描述属于该记号的词法单元的形式。在一个关键字作为一个记号的情况下,它的模式就是构成该关键字的字符序列。对于标识符和其他一些记号,它们的模式有更复杂的结构并且有很多字符串可以匹配它们。
词法单元:又称单词,是源程序中匹配一个记号模式的字符序列,它由词法分析器标识为该记号的实例。
在大多数编程语言中,关键字、算符、标识符、常数、文字串(字符串)和标点符号都处理为记号。
P16词法错误(概念)
P18正规式的定义
不确定的有限自动机:P23
1.
一个有限的状态集合S;
2.
一个输入符号的集合∑(也称输入符号字母表,空串ε绝不会出现在∑中);
3.
一个转换函数move:S*(∑∪{ε})→P(S),它把状态和符号(可以是ε)两组映射到一个状态集合。
4.
状态s。是一个唯一的开始状态;
5.
状态集合F是接受(或终止)状态集合,并且F包含于S;
3
上下文无关文法定义:P39
(1)
VT
是一个非空有限集合,其元素称为终结符。
(2)
VN是一个非空有限集合,其元素称为非终结符,并有VT∩VN=非空
(3)
S是一个非终结符,称为开始符号。
(4)
P是产生式的有限集合。
概念:句子;
推导;语言;句型
P41
文法的优点:
(1)
文法为语言给出了精确的、易于理解的语法说明。
(2)
对于某些文法类,可以自动产生高效的分析器。
(3)
如果文法设计得当,则它赋予语言的结构对于把源程序翻译成为正确的目标代码和对于错误诊断都是有用的。
(4)
语言也是逐渐完善的,增加新构造以完成新任务的情况时有发生。
分离词法分析器的理由:
(1)
编译器的效率会改进。
(2)
编译器的可移植性加强。
(3)
把语言的语法结构分成词法和非词法两部分,为编译器前端的模块划分提供了方便的途径。
P47
消除左递归
普通的编程错误会出现在不同的层次上:
(1)
词法错误。如标识符、关键字或算符的拼写错误,遗漏字符串两端的引号。
(2)
语法错误。如算术表达式的刮号不配对。
(3)
语义错误。如算符和运算对象之间类型不匹配。
(4)
逻辑错误。如在c语言中用赋值号“=”代替了比较算符“=
=”。
LR分析器富有吸引力的原因:
(1)
LR分析器能够被构造来识别所有能用上下文无关文法写出的编程语言构造。
(2)
LR分析方法是已知的最一般的无回溯的移进-归约方法,它能和其他移进-归约方法一样有效地实现。
(3)
LR方法能分析的文法类是预测分析法或者说LL方法能分析的文法类的直超集。
(4)
在自左向右扫描输入的前提下,LR分析器尽可能快地发现语法错误。
4.
综合属性:如果b是A的属性,c1,c2,····,ck是产生式右部文法符号的属性或A的其他属性,那么b称为A的综合属性。
继承属性:如果b是产生式右部某个文法符号X的属性,c1,c2,···,ck是A的属性或右部文法符号的属性,那么b称为X的继承属性。
S属性定义:仅仅使用综合属性的语法制导定义称为S属性定义。
注释分析树:每个结点的属性值都标注出来的分析树。
依赖图:分析树结点的属性之间的互相依赖可以用依赖图的有向图来描绘。
构造翻译方案的规则:
(1)
产生式右部符号的继承属性必须在先于这个符号的动作中计算。
(2)
一个动作不能引用该动作右边符号的综合属性。
(3)
左部非终结符的综合属性只能在它所引用的所有属性都计算完后才能计算。
(4)
只有综合属性的情况最简单。
6
活动纪录的结构:
(1)
临时数据;保存临时值。
(2)
局部数据;保存过程的局部数据。
(3)
保存的机器状态;保存刚好在过程调用前的机器状态信息,包括返回地址及调用过程使用并且在返回时必须恢复的寄存器的内容。
(4)
访问链;有些语言需要通过访问链来访问非局部数据。
(5)
控制链;用来指向调用者的活动记录。
(6)
参数;调用过程提供的实在参数,由被调用过程使用。
(7)
返回值。用于存放被调用过程返回给调用过程的值。
活动纪录设计布局原则:
(1)
调用者和被调用者之间交流的数据一般放在被调用者活动纪录的开始处,并尽可能靠近调用者的活动纪录。
(2)
固定长度的项通常放在活动纪录的中间,一般包括控制链、访问链和机器状态链。
(3)
在编译时不能及时知道大小的一些项放在活动纪录的末端。
参数传递的方法及特点:
(1)
值调用。值调用是最简单的传递参数的方法。调用者计算实参,并把它的值(右值)传给被调用过程。
(2)
引用调用。调用者把实参存储单元的地址(即实参的左值)传给被调用者,被调用者对形参的任何访问就是对对应实参的访问。
(3)
换名调用。P181
7.
使用独立于机器的中间形式的好处:
(1)
再目标比较容易。把针对新机器的后端加到现成的前端上,可以得到另一种机器的编译器。
(2)
独立于机器的代码优化器可用于这种中间表示。
8.
目标程序类型和特点:
(1)绝对机器语言程序。目标程序可以放在内存的固定地方并且立即执行,因此程序可用被迅速地编译和执行。
(2)可重定位机器语言程序。需要连接装入程序把一组可重定位目标模块连接成一个可执行的目标程序。虽然产生可重定位目标模块必须增加额外的开销来进行连接,但它带来的好处是灵活性。
(3)汇编语言程序。产生汇编语言程序作为输出使得代码生成的过程变得容易,因为可用产生符号指令并可利用汇编器的宏机制来帮助生成代码,所付出的代价是代码生成后的编译工序。
基本块
确定入口语句:
(1)
序列的第一个语句;
(2)
能够作为条件转移或无条件转移目标的语句。
(3)
紧跟在条件转移之后的语句。