高级语言与编译程序概述自测题doc资料Word文档格式.docx

上传人:b****2 文档编号:367194 上传时间:2023-04-28 格式:DOCX 页数:7 大小:18.71KB
下载 相关 举报
高级语言与编译程序概述自测题doc资料Word文档格式.docx_第1页
第1页 / 共7页
高级语言与编译程序概述自测题doc资料Word文档格式.docx_第2页
第2页 / 共7页
高级语言与编译程序概述自测题doc资料Word文档格式.docx_第3页
第3页 / 共7页
高级语言与编译程序概述自测题doc资料Word文档格式.docx_第4页
第4页 / 共7页
高级语言与编译程序概述自测题doc资料Word文档格式.docx_第5页
第5页 / 共7页
高级语言与编译程序概述自测题doc资料Word文档格式.docx_第6页
第6页 / 共7页
高级语言与编译程序概述自测题doc资料Word文档格式.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

高级语言与编译程序概述自测题doc资料Word文档格式.docx

《高级语言与编译程序概述自测题doc资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《高级语言与编译程序概述自测题doc资料Word文档格式.docx(7页珍藏版)》请在冰点文库上搜索。

高级语言与编译程序概述自测题doc资料Word文档格式.docx

5.使用____可以定义一个程序的意义。

A.语义规则B.词法规则C.产生规则D.左结合规则

6.词法分析器的输入是____。

A.单词符号B.源程序C.语法单位D.目标程序

7.中间代码生成时所遵循的是____。

A.语法规则B.词法规则C.语义规则D.等价变换规则

8.编译程序是对____。

A.汇编程序的翻译B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译

9.词法分析应遵循____。

A.语义规则B.语法规则C.构词规则D.等价变换规则

10.若源程序是高级语言编写的程序,目标程序是____,则称它为编译程序。

A.汇编语言程序或高级语言程序B.高级语言程序或机器语言程序

C.汇编语言程序或机器语言程序D.连接程序或运行程序

11.编译过程中,词法分析阶段的任务是____。

A.识别表达式B.识别语言单词C.识别语句D.识别程序

二、多项选择题:

1.编译程序各阶段的工作都涉及到____。

A.语法分析B.表格管理C.出错处理D.语义分析E.词法分析

2.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:

____和____。

A.编译阶段B.汇编阶段C.运行阶段D.置初值阶段

3.编译程序工作时,通常有____阶段。

A.词法分析B.语法分析C.中间代码生成D.语义检查E.目标代码生成F.出错处理G.表格管理

4.编译过程中所遵循的规则有____。

A.等价变换规则B.短语规则C.构词规则D.语义规则E.语法规则

三、填空题:

1.解释程序和编译程序的区别在于________。

2.编译过程通常可分为5个阶段,分别是____、语法分析、____、代码优化和目

标代码生成。

3.编译程序是指能将____程序翻译成____程序的程序。

4.把语法范畴翻译成中间代码所依据的是语言的____。

5.目标代码可以是____指令代码或____指令代码或绝对机器指令代码。

6.词法分析所遵循的是语言的____,而中间代码生成所遵循的是语言的____。

四、判断题:

1.编译程序是一种常用的应用软件。

()

2.C语言的编译程序可以用C语言来编写。

()

3.编译方式与解释方式的根本区别在于是否生成目标代码。

()

4.编译程序与具体的语言无关。

()

5.一般而言,中间代码是一种独立于具体硬件的记号系统。

()

6.编译程序与具体的机器有关。

7.对编译程序而言,代码优化是不可缺少的一部分。

()

8.对编译程序而言,中间代码生成是不可缺少的一部分。

()

9.编译程序生成的目标程序一定是可执行的程序。

() 

10.含有优化部分的编译程序的执行效率高。

()

五、综合题

1.计算机执行用高级语言编写的程序有哪些途径?

它们之间的主要区别是什么?

2.画出编译程序的总体结构图,简述各部分的主要功能。

3.什么叫自展?

什么叫交叉编译?

4.试分析编译程序是否分遍应考虑的因素及多遍扫描编译程序的优缺点。

5.请画出编译程序的总框。

如果你是一个编译程序的总设计师,应当考虑哪些问题?

(国防6.何谓源程序、目标程序、翻译程序、编译程序和解释程序?

它们之间可能有何种关系?

7.选择一种你所熟悉的程序设计语言,试列出此语言中的全部关键字,并通过上机使用该语言以判明这些关键字是否为保留字。

第一章答案:

一、答:

1.B2.D3.D4.D5.A6.B7.C8.D9.C10.C 

11.B

二、答:

1.BC2AC3.ABCDE4.ACDE 

三、答:

1.是否生成目标程序

2.词法分析、中间代码生成

3.高级语言所写的源语言等价的机器语言或汇编语言的目标

4.语义规则。

5.汇编可重定位

6.词法规则语义规则

四、答:

1.X2.√3.√4.X5.√6.X7.X8.X9.X10.X 

五、

答:

计算机执行用高级语言编写的程序主要有两种途径:

解释和编译。

在解释方式下,编译程序事先并不采用将高级语言程序全部翻译成机器代码程序,然后执行这个机器代码程序的方法,而是每读入一条源程序的语句,就将其解释(翻译)成对应其功能的机器代码语句串执行之,而所翻译的机器代码语句串在该语句执行后并不保留,然后再读入下一条源程序语句,再解释执行。

这种方法是按照源程序语句中动态的执行顺序逐句解释(翻译)执行的,如果一语句处于一循环体中,则每次循环执行到该语句时,都要将其翻译成机器代码后执行。

编译方式下,高级语言程序的执行是分两步进行的:

第一步首先将高级语言程序全部翻译成机器代码程序,第二步才是执行这个机器代码程序;

也即对源程序的处理是先翻译后执行。

从执行速度上看,编译型的高级语言比解释型高级语言要快,但解释方式下的人机界面比编译型好,便于程序调试。

两种途径的主要区别在于:

解释方式下不生成目标代码程序,而编译方式生成目标代码程序。

编译程序的总体结构图如下图所示。

词法分析程序:

输入源程序,进行词法分析,输出单词符号。

语法分析程序:

在词法分析的基础上,根据语言的语法规则(文法规则)把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。

语义分析和中间代码生成程序:

按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码,比如说四元式。

代码优化程序:

对中间代码进行优化处理。

目标代码生成器:

把中间代码翻译成目标语言程序。

表格管理程序:

保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情况。

编译程序各阶段所产生的中间结果都记录在表格中,所需信息多数都需要从表格中获取,整个翻译过程都在不断地和表格打交道。

出错处理程序对出现在源程序中的错误进行处理。

此外编译的各阶段都可能出现错误,出错处理程序对发现的错误都及时进行处理。

自展是先对程序核心部分构造一个小的编译程序,再以它为工具构造一个能够编译多语言成分的较大的编译程序。

如此扩展下去,直至最后形成人们所期望的整个编译程序。

交叉编译是在计算机系统A上编译能够在于系统A不同的计算机系统B上运行的程序。

编译程序是否分遍应根据具体情况决定,如语言的大小与结构,是否有先使用后说明的使用方式;

内存容量的大小、设计目标、是否考虑编译的速度或目标程序的运行速度,设计人员的规模与素质等。

采用多遍扫描方式可以节省内存空间并提高目标程序质量,同时也缩短编译程序的研制周期。

但多遍扫描必然会产生各遍扫描之间要传递一些表格、信息以及一些重复性的工作,这就增加编译花费的时间,降低了编译的效率。

(国防科大2000年研究生试题)

编译程序总框如下图所示。

作为一个编译程序的总设计师,首先要深刻理解被编译的源语言的语法及语义;

其次,要充分掌握目标指令的功能及特点,如果目标语言是机器指令,还要搞清楚机器的硬件结构以及操作系统的功能;

第三,对编译的方法及使用的软件工具也必须准确化;

总之必须估量系统功能要求、硬件设备及软件工具等因素对编译程序构造的影响。

6.何谓源程序、目标程序、翻译程序、编译程序和解释程序?

源程序是指以某种程序设计语言所编写的程序。

目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。

翻译程序是将某种语言翻译成另一种语言的程序的统称。

编译程序与解释程序均为翻译程序,但二者工作方法不同。

解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。

即边解释边执行,翻译所得的指令序列并不保存。

编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。

即先翻译、后执行。

C语言的关键字有:

auto 

break 

casecharconst 

continuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile。

上述关键字在C语言中均为保留字。

8.选取一种你所熟悉的语言,试对它进行分析,以找出此语言中的括号、关键字END以及逗号有多少种不同的用途。

C语言中括号有三种:

{},[],()。

其中,{}用于语句括号;

[]用于数组;

()用于函数(定义与调用)及表达式运算(改变运算顺序)。

C语言中无END关键字。

逗号在C语言中被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:

(a,b,c,d)的值为d)。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2