编译原理第一章作业

第一章 编译原理
习题

1.1 高级程序设计语言有那些特点?
①优点
独立于具体计算机,面向过程(函数)或对象。
程序设计语言接近于英语,可理解性好。
数据类型丰富,各种功能的语句齐备,一条语句至少相当于几十条汇编语句。
②缺点
需翻译程序,将高级语言译成机器语言或汇编语言。
对硬件操作困难,高级语言通常提供汇编语言接口。

1.2 典型的编译程序可划分为几部分?
各部分的主要功能是什么?
每部分都是必不可少的吗?
(1)词法分析程序:从左到右扫描源程序,识别单词及其有关属性;
(2)语法分析程序:分析源程序的结构, 判别它是否为相应程序设计语言中的一个合法程序;
(3)语义分析程序:审查源程序有无语义错误,为代码生成阶段收集类型信息;
(4)中间代码生成程序:将源程序变成一种内部表示形式;
(5)代码优化程序:对前阶段产生的中间代码进行变换或进行改造,使生成的目标代码更为高效;
(6)目标代码生成程序:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码;
(7)表格管理程序:保存编译过程中的各种信息;
(8)出错处理程序:若编译过程中发现源程序存在错误,则报告错误的性质和错误发生的地点,有些还可以自动校正错误。

1.3解释方式和编译方式的区别是什么?
解释方式(Interpret):以源程序作为输入,输入一句解释执行一句,不产生完整的目标程序,相应的翻译程序称为解释程序(Interpreter)。
解释方式主要特点是:用户程序是消极的。用户程序运行时,控制点在解释程序,即用户程序的执行离不开解释程序。

编译方式(Compile):将源程序全部译为目标程序,该目标程序可在操作系统环境下直接执行,相应的翻译程序称为编译程序(Compiler)。

1.4论述多遍扫描编译程序的优缺点。
优点:
1.可以减少内存容量的需求。分遍后,以遍为单位分别调用编译的各个程序,各遍程序可以相互覆盖;
2.可使各遍的编译程序相互独立,结构清晰;
3.能够进行充分的优化,产生高质量的目标程序;
4.可将编译程序分为“前端”和“后端”(见下节),有利于编译程序的移植。
缺点:主要是每遍都要读符号、送符号,增加了许多重复性工作,降低编译效率。

1.5 解释下列名词:源程序、目标程序、翻译程序、汇编程序、编译程序、遍。
源程序:源语言编写的程序叫源程序。
目标程序:经过翻译程序加工后用目标语言表示的程序。
翻译程序:将源程序译成逻辑上等价的目标程序的程序。翻译程序有二种工作方式:编译和解释。
汇编程序:把汇编语言程序翻译成机器语言程序。?
编译程序:高级语言翻译成低级语言,是翻译程序的特殊情况。?
遍:是对源程序或其等价的中间语言程序从头到尾扫视的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值