【习题答案】第04章 自顶向下的语法分析
- 格式:pdf
- 大小:404.62 KB
- 文档页数:4
第一章:编译系统概述一.单项选择题1.编译程序前三个阶段完成的工作是〔C〕。
A.词法分析, 语法分析和代码优化B.代码生成, 代码优化和词法分析C.词法分析, 语法分析, 语义分析和中间代码生成D.词法分析, 语法分析和代码优化2.编译程序绝大多数时间花在〔D〕上。
A.出错处理 B.词法分析 C.目标代码生成D.表格管理3.编译程序是对〔C〕。
A.汇编程序的翻译 B.高级语言程序的说明执行C.高级语言的翻译 D.机器语言的执行4.在运用高级语言编程时,首先可通过编译程序发觉源程序的全部〔A〕错误。
A.语法 B.语义 C.语用 D.运行二.填空题1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。
2.通常把编译过程分为分析前端及后端两大阶段。
词法, 语法和语义分析是对源程序的(分析),中间代码生成, 代码优化及目标代码的生成那么是对源程序的(综合)。
3.对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。
4.对以下错误信息,请指出可能是编译的哪个阶段〔词法分析, 语法分析, 语义分析,代码生成〕报告的。
〔1〕 else 没有匹配的if 〔语法分析〕〔2〕数组下标越界〔语义分析〕〔3〕运用的函数没有定义〔语法分析〕〔4〕在数中出现非数字字符〔词法分析〕5.假如编译程序生成的目标程序是机器代码程序,那么源程序的执行分为两大阶段:〔编译阶段〕和〔运行阶段〕。
假如编译程序生成的目标程序是汇编语言程序,那么源程序的执行方式分成三个阶段:〔编译阶段〕〔汇编阶段〕和〔运行阶段〕。
6.编译程序在其工作过程运用最多的数据构造是〔表〕,它记录着源程序中各种信息,以便查询或修改,在这些〔表〕中,尤以〔符号表〕最重要,它的生存期最长,运用也最频繁。
三.简述题:1.编译程序的工作分为那几个阶段答:词法分析, 语法分析和语义分析是对源程序进展的分析(称为编译程序的前端),而中间代码生成, 代码优化和代码生成三个阶段合称为对源程序进展综合(称为编译程序的后端),它们从源程序的中间表示建立起和源程序等价的目标程序。
4复习题1.网络层的分组名称是数据报.路由器是根据包的IP地址转发包;而链路层是根据包的MAC地址来转发包.2.数据报网络中网络层两个最重要的功能是:转发,选路.虚电路网络层最重要的三个功能是:转发,选路,和呼叫建立.3.P200 转发是当一个分组到达路由器的一条输入链路时,该路由器将该分组移动到适当的输出链路.选路是当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径.4.是,都使用转发表,要描述转发表,请参考4.2节.在虚电路网络中,该网络的路由器必须为进行中的连接维持连接状态信息。
每当跨越一台路由器则创建一个新连接,一个新的连接项必须加到该路由器转发表中;每当释放一个连接,必须从该表中删除该项。
注意到即使没有VC号转换,仍有必要维持连接状态信息,该信息将VC号与输出接口号联系起来。
每当一个端系统要发送分组时,它就为该分组加上目的地端系统的地址,然后将该分组推进网络中。
完成这些无需建立任何虚电路。
在数据报网络中的路由器不维护任何有关虚电路的状态信息。
每个路由器有一个将目的地址影射到链路接口的转发表;当分组到达路由器时,该路由器使用该分组的目的地址在该转发表中查找适当的输出链路接口。
然后路由其将该分组项该输出链路接口转发。
虽然在数据报网络中不维持连接状态信息,它们无论如何在其转发表中维持了转发状态信息。
在数据报网络中的转发表是由选录算法修改的,通常每1到5分钟左右更新转发表。
在虚电路网络中,无论何时通过路由器拆除一条现有的连接,路由器中的转发表就更新。
5.P202 单个分组:确保交付;具有延时上界的确保交付.分组流:有序分组交付;确保最小带宽;确保最大时延抖动.因特网的网络层不提供这些服务.ATM的CBR(恒定比特率)服务同时提供确保交付和计时.ABR(可用比特率)不提供该假想服务.6.交互式实时多媒体应用,如:IP电话和视频会议.这些应用都得益于ATM的CBR服务的实时性.7.正是由于有影子拷贝,在每个输入端口的转发都由本地决定,而不用调用中心选路处理器.这种分散的转发方式避免了在路由器的某一个节点出现转发处理的瓶颈.8.P211 (1)经内存交换:在输入和输出端口之间的交换是在CPU控制下完成的.输入与输出端口的作用就像在传统操作系统中的I/O设备一样.一个分组到达一个输入端口,该端口会先通过中断方式向选路处理器发出信号.于是,该分组就被拷贝到处理器内存中.选路处理器从分组首部中取出目的地址,在转发表中找出适当的输出端口,并将该分组拷贝到输出端口的缓存中.(2)经一根总线交换:输入端口经一根总线将分组直接传送到输出端口,不需要选路处理器的干预.由于总线是共享的,故一次只能有一个分组通过总线传送.(3)经一个互联网络交换:使用一个纵横的网络,是一个由2n条总线组成的互联网络,它将n个输出端口和n个输入端口连接,一个到达某个端口的分组沿着连到输出端口的水平总线穿行,直至该水平总线与连到所希望的输出端口的垂直总线之交点.9.P213 如果在输入端口因为交换结构速率慢而引起队列长度的加大,最终将路由器的缓存空间耗尽,就会出现“分组丢失”.如果交换结构速率大于线路速率的n倍(n是输入端口的数量)就可以消除分组丢失的问题. 10.因为输出线速率慢而导致输出端队列长度加大,最终将耗尽输出端口的存储空间,在这样的情况下,分组就被丢弃了。
编译原理第3版完整答案编译原理是计算机科学与技术领域中非常重要的一门课程,它研究的是如何将人类编写的高级程序转化为计算机能够理解和执行的机器语言指令。
编译原理第3版是一本经典的教材,本文将全面介绍该教材中的所有章节,并提供完整的答案。
第1章引论1.1 编译器和解释器的基本概念编译器和解释器是两种将高级语言转化为机器指令的方法。
编译器将整个程序作为输入,分析和翻译整个程序,将结果存储在一个可执行的目标文件中。
解释器则逐行解释源程序,一边解释一边执行。
1.2 编译器结构编译器可以分为前端和后端两个主要组成部分。
前端负责源程序的分析和翻译,包括词法分析、语法分析和语义分析;后端则负责将中间表示转换为目标机器代码。
1.3 语言处理器的实现方式语言处理器的实现方式可以分为两种:解释执行和编译执行。
解释执行是指将源程序逐条解释执行;编译执行则是将源程序先编译为目标代码,再执行。
第2章词法分析2.1 词法单元、词法规则和词法分析器词法分析是编译器中的第一个阶段,它将源程序分割为一个个的词法单元。
词法规则定义了词法单元的语法和形式,词法分析器根据这些规则识别出词法单元。
2.2 正则表达式和有限自动机正则表达式是一种描述字符串模式的语言,它可以用来描述词法规则。
有限自动机是一种用于识别正则表达式的计算模型。
2.3 正则表达式到有限自动机的转换通过将正则表达式转换为等价的有限自动机,可以实现正则表达式的匹配。
第3章语法分析3.1 上下文无关文法和语法分析器语法分析是编译器中的第二个阶段,它根据语法规则将词法单元组成的序列转换为语法分析树。
上下文无关文法是一种用于描述语法规则的形式化语言。
3.2 自顶向下语法分析方法自顶向下语法分析方法从根节点开始构建语法分析树,逐步展开每个非终结符,直到达到叶子节点。
3.3 自底向上语法分析方法自底向上语法分析方法从词法单元开始反向推导出语法分析树的构造过程。
第4章语义分析4.1 属性文法和语义分析器语义分析是编译器中的第三个阶段,它对语法分析树中的节点进行语义处理和类型检查。