对高级语言源程序进行编译的过程可以分为多个阶段,分配寄存器的工作在()阶段进行。

题目
单选题
对高级语言源程序进行编译的过程可以分为多个阶段,分配寄存器的工作在()阶段进行。
A

词法分析

B

语法分析

C

语义分析

D

目标代码生成

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

● 以下关于编译系统对某高级语言进行翻译的叙述中,错误的是 (48) 。

(48

A. 词法分析将把源程序看作一个线性字符序列进行分析

B. 语法分析阶段可以发现程序中所有的语法错误

C. 语义分析阶段可以发现程序中所有的语义错误

D. 目标代码生成阶段的工作与目标机器的体系结构相关


正确答案:C
试题(48)分析
  本题考查程序语言翻译基础知识。
  词法分析是编译过程的第一阶段,其任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个的“单词”符号。语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”和“程序”等。语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码。目标代码生成是编译器工作的最后一个阶段。这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码,这个阶段的工作与具体的机器密切相关。
  源程序不可避免地会有一些错误,这些错误大致可分为语法错误和语义错误。语法错误是指语言结构上的使用错误,是指编译时所发现的程序错误,如单词拼写错误、标点符号错、表达式中缺少操作数、括号不匹配等有关语言结构上的错误。
参考答案
(48)C

第2题:

已知某高级语言源程序A经编译后得到机器c上的目标程序B,则( )。

A.对B进行反编译,不能还原出源程序A

B.对B进行反汇编,不能得到与源程序A等价的汇编程序代码

C.对B进行反编译,得到的是源程序A的变量声明和算法流程

D.对A和B进行交叉编译,可以产生在机器c上运行的动态链接库


正确答案:A
解析:编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。反编译通常不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序。

第3题:

对高级语言源程序进行编译的过程可以分为多个阶段,分配寄存器的工作在()阶段进行。

A.词法分析

B.语法分析

C.语义分析

D.目标代码生成


参考答案:D

第4题:

对高级语言源程序进行编译的过程中,有穷自动机(NFA或DFA)是进行(49)的适当工具。A.词法分析SXB

对高级语言源程序进行编译的过程中,有穷自动机(NFA或DFA)是进行(49)的适当工具。

A.词法分析

B.语法分析

C.语义分析

D.出错处理


正确答案:A
编译程序的功能是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(汇编语言或机器语言)的翻译过程。工作过程分为6个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。各个阶段逻辑上可以分为前端和后端。前端主要负责解析输入的源代码,由语法分析器和语意分析器协同工作。语法分析器负责把源代码中的‘单词’找出来,语意分析器把这些分散的单词按预先定义好的语法组装成有意义的表达式、语句、函数等等。前端还负责语义的检查,例如检测参与运算的变量是否是同一类型的,简单的错误处理。最终的结果常常是一个抽象的语法树,这样后端可以在此基础上进一步优化处理。后端编译器后端主要负责分析,优化中间代码以及生成机器代码。

第5题:

编译器和解释器是两种高级语言处理程序,与解释器相比,(186)。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段:其中,(187)和中间代码生成并不是每种编译器都必需的。词法分析的作用是识别源程序中的(188);语法分析中的预测分析法是(189)的一种语法分析方法;编译器在(190)阶段进行表达式的类型检查及类型转换。

A.编译器不参与运行控制,程序执行的速度慢

B.编译器参与运行控制,程序执行的速度慢

C.编译器参与运行控制,程序执行的速度快

D.编译器不参与运行控制,程序执行的速度快


正确答案:D

第6题:

以下关于编译系统对某高级语言进行翻译的叙述中,错误的是( )。

A.词法分析将把源程序看作一个线性字符序列进行分析

B.语法分析阶段可以发现程序中所有的语法错误

C.语义分析阶段可以发现程序中所有的语义错误

D.目标代码生成阶段的工作与目标机器的体系结构相关


正确答案:C
解析:语义分析阶段只能发现程序中的语法错误,而不能发现程序中存在的逻辑上的错误。

第7题:

已知某高级语言源程序A经编译后得到机器C上的目标程序B,则(21)。

A.B进行反编译,不能还原出源程序A

B.对B进行反汇编,不能得到与源程序A等价的汇编程序代码

C.对B进行反编译,得到的是源程序A的变量声明和算法流程

D.对A和B进行交叉编译,可以产生在机器C上运行的动态链接库


正确答案:A
解析:本题考查程序语言方面的基础知识。编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。反编译通常不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序。

第8题:

● 已知某高级语言源程序A 经编译后得到机器C 上的目标程序B,则 (24) 。

(24)

A. 对B 进行反编译,不能还原出源程序A

B. 对B 进行反汇编,不能得到与源程序A 等价的汇编程序代码

C. 对B 进行反编译,可得到源程序A 的算法结构

D. 对A 和B 进行交叉编译,可以产生在机器C 上运行的动态链接库


正确答案:B

第9题:

高级语言源程序的编译过程分若干个阶段,分配寄存器属于(49)阶段的工作。

A.词法分析

B.语法分析

C.语义分析

D.代码生成


正确答案:D
解析:本题考查程序语言翻译基础知识。编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序(汇编语言或机器语言)。编译程序的工作过程可以分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段,以及出错处理和符号表管理。其中,中间代码生成和代码优化阶段不是必需的。目标代码生成时才考虑与具体机器相关的处理,寄存器分配处于代码生成阶段的工作。

第10题:

已知某高级语言源程序A经编译后得到机器C上的目标程序B,则(24)。

A.对B进行反编译,不能还原出源程序A

B.对B进行反汇编,不能得到与源程序A等价的汇编程序代码

C.对B进行反编译,得到的是源程序A的变量声明和算法流程

D.对A和B进行交叉编译,可以产生在机器C上运行的动态链接库


正确答案:A
解析:本题考查程序语言方面的基础知识。编译是将高级语言源程序翻译成机器语言程序(汇编形式或机器代码形式),反编译是编译的逆过程。反编译通常不能把可执行文件还原成高级语言源代码,只能转换成功能上等价的汇编程序。

更多相关问题