软件设计师真题,程序设计语言专项练习(六)

视频讲解

软件设计师 上午题 程序设计专题

词法、语法、语义分析与目标代码生成

以下关于编译系统对某高级语言进行翻译的叙述中,错误的是 (48) 。(2009年下半年)
(48)
A. 词法分析将把源程序看作一个线性字符序列进行分析
B. 语法分析阶段可以发现程序中所有的语法错误
C. 语义分析阶段可以发现程序中所有的语义错误
D. 目标代码生成阶段的工作与目标机器的体系结构相关

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

编译程序对C语言源程序进行语法分析时,可以确定 (22) 。(2010年上半年)
(22)
A. 变量是否定义(或声明) B. 变量的值是否正确
C. 循环语句的执行次数 D. 循环条件是否正确

对C源程序进行编译时,需建立符号表,其作用是记录源程序中各个符号(变量等)的必要信息,以辅助语义的正确性检查和代码生成,在编译过程中需要对符号表进行快速有效地查找、插入、修改和删除等操作。符号表的建立可以始于词法分析阶段,也可以放到语法分析和语义分析阶段,但符号表的使用有时会延续到目标代码的运行阶段。

编译程序分析源程序的阶段依次是 (21) 。(2010年下半年)
(21)
A. 词法分析、语法分析、语义分析
B. 语法分析、词法分析、语义分析
C. 语义分析、语法分析、词法分析
D. 语义分析、词法分析、语法分析

编译程序是一种将高级语言程序翻译成目标程序的系统软件,它对源程序的翻译过程分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,以及符号表管理和出错处理。
源程序可以被看成是一个字符串。词法分析是编译过程的第一阶段,其任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个的“单词”符号。语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”“程序”等。语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码。

以下关于高级程序设计语言翻译的叙述中,正确的是 (48) 。(2011年上半年)
(48)
A. 可以先进行语法分析,再进行词法分析
B. 在语法分析阶段可以发现程序中的所有错误
C. 语义分析阶段的工作与目标机器的体系结构密切相关
D. 目标代码生成阶段的工作与目标机器的体系结构密切相关

将高级语言程序翻译为机器语言程序的过程中,需要依次进行词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段,其中,中间代码生成和代码优化可以省略。
程序中的错误分为语法错误和语义错误,语法分析阶段不能发现语义错误。
语义分析阶段主要处理语法正确的语言结构的含义信息,可以与目标机器的体系结构无关。目标代码生成阶段的工作与目标机器的体系结构是密切相关的。

扫描二维码关注公众号,回复: 17146545 查看本文章

对高级语言源程序进行编译的过程可以分为多个阶段,分配寄存器的工作在 (48) 阶段进行。(2014年下半年)
(48)
A. 词法分析 B. 语法分析
C. 语义分析 D. 目标代码生成

在这里插入图片描述

在以阶段划分的编译过程中,判断程序语句的形式是否正确属于 (22) 阶段的工作。(2017年上半年)
(22) A. 词法分析 B. 语法分析 C. 语义分析 D. 代码生成

程序语言中的词(符号)的构成规则可由正规式描述,词法分析的基本任务就是识别出源程序中的每个词。
语法分析是分析语句及程序的结构是否符合语言定义的规范,对于语法正确的语句,语义分析是判断语句的含义是否正确,因此判断语句的形式是否正确是语法分析阶段的工作。

编译过程中进行的语法分析主要是分析 (48) 。(2017年下半年)
(48)
A. 源程序中的标识符是否合法 B. 程序语句的含义是否合法
C. 程序语句的结构是否合法 D. 表达式的类型是否合法

编译过程一般分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,以及出错处理和符号表管理。其中,语法分析是在词法分析的基础上分析短语(表达式)、句子(语句)的结构是否正确。

在以阶段划分的编译器中, (48) 阶段的主要作用是分析程序中的句子结构是否正确。(2018年下半年)
(48) A. 词法分析 B. 语法分析 C. 语义分析 D. 代码生成

在以阶段划分的编译器中,包括词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等6个阶段,还涉及出错处理和符号表管理。
其中,语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等。语法规则就是各类语法单位的构成规则。通过语法分析确定整个输入串是否构成一个语法上正确的程序,对于语句而言,也就是分析语句的结构是否正确。

以编译方式翻译C/C++源程序的过程中, (21) 阶段的主要任务是对各条语句的结构进行合法性分析。(2019年上半年)
(21)
A. 词法分析 B. 语义分析
C. 语法分析 D. 目标代码生成

词法分析阶段是编译过程的第一个阶段,这个阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号。
语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”等。语法规则就是各类语法单位的构成规则。通过语法分析确定整个输入串是否构成一个语法上正确的程序。
语义分析阶段分析各语法结构的含义,检查源程序是否包含静态语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能翻译成正确的目标代码。

在以阶段划分的编译器中, (48) 阶段的主要作用是分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定。(2019年上半年)
(48) A. 词法分析 B. 语法分析 C. 语义分析 D. 代码生成

编译过程中词法分析阶段的主要作用是分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定。

将编译器的工作过程划分为词法分析,语法分析,语义分析,中间代码生成,代码优化和目标代码生成时,语法分析阶段的输入是 (20) 。若程序中的括号不配对,则会在 (21) 阶段检查出错误。(2019年下半年)
(20) A. 记号流 B. 字符流 C. 源程序 D. 分析树
(21) A. 词法分析 B. 语法分析 C. 语义分析 D. 目标代码生成
在这里插入图片描述

以编译方式翻译C/C++源程序的过程中,类型检查在 (21) 阶段处理。(2021年上半年)
(21)
A、词法分析 B、语义分析
C、语法分析 D、目标代码生成

猜你喜欢

转载自blog.csdn.net/weixin_50843918/article/details/134942466