2.编译程序有哪些主要构成部分?各自的主要功能是什么?
答:一个编译程序通常包含八个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间**生成程序、中间**优化程序、目标**生成程序、**管理程序和错误处理程序。
各自的主要功能如下:
词法分析程序:输入源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。
语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。
中间**生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言**,如三元式或四元式。
中间**优化程序:为了产生高质量的目标**,对中间**进行等价变换处理。
目标**生成程序:将优化后的中间**程序转换成目标**程序。
**管理程序:负责建立、填写和查找等一系列**工作。**的作用是记录源程序的各类信息和编译各阶段的进展情况,编译的每个阶段所需信息多数都从**中读取,产生的中间结果都记录在相应的**中。
可以说整个编译过程就是造表、查表的工作过程。需要指出的是,这里的“**管理程序”并不意味着它就是一个独立的**管理模块,而是指编译程序具有的**管理功能。
错误处理程序:处理和校正源程序中存在的词法、语法和语义错误。当编译程序发现源程序中的错误时,错误处理程序负责报告出错的位置和错误性质等信息,同时对发现的错误进行适当的校正(修复),目的是使编译程序能够继续向下进行分析和处理。
4.对下列错误信息,请指出可能是编译的那个阶段(词法分析、语法分析、语义分析、**生成)报告的。
1)else没有匹配的if;
2)数组下标越界;
3)使用的函数没有定义;(4)在数**现非数字字符。答:(1)语法分析;(2)语义分析;(3)语法分析;(4)词法分析。
编译原理第一章作业完整答案版
3 为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以。obj作扩展名。4 编译程序的前端通常指 词法分析 语法分析 语义分析等生成最终 以前的一系列步骤。5 后端包含 优化和目标 生成部分。6 对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。四 数据结构 分析部分 综合...
微机原理第一章作业
微机原理第一章作业习题。一二 综合题。1.设机器字长为8位,写出下列用真值表示的二进制数的原码 反码和补码,并用。十六进制形式给出结果。1 0010101b 2 1110001b 5 1111011b 6 1001010b 2.下列各数均为十进制数,试用8位二进制补码计算下列各题,并将运算结果用两。...
船舶原理第一章作业
船中 船长的中点。舷弧 沿船长各处的甲板边线高度与船中甲板边线高度的差值。梁拱 甲板中线与甲板边线的高度差值。型表面 不包括船壳板和甲板板厚度在内的船体表面,即肋骨以外船壳板以内 横梁以上甲板板一下的船体表面。型线图 用不包括船壳板和甲板板厚度在内的船体表面来表示船体几何形状的图。基平面 过龙骨线与...