标签: 软考初级程序员易错题,计算机基础, 程序语言翻译,程序设计语言,编译程序
2.3 在编译过程中,进行类型分析和检查是( )阶段的一个主要工作。
问题1
A.词法分析
B.语法分析
C.语义分析
D.代码优化
问题1:
正确答案C
参考解析: 本题考查程序语言基础知识。 一般的编译程序工作过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成,以及出错处理和符号表管理。
词法分析阶段是编译过程的第一阶段,这个阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号。
语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”和“程序”等。 例如:单词拼写错误、标点符号错、表达式中缺少操作数、括号不匹配等
语义分析阶段主要分析程序中各种语法结构的语义信息,包括检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。例如运算符与运算对象类型不合法,变量取零时作除数、引用数组元素下标越界等
只有语法和语义都正确的源程序才能被翻译成正确的目标代码。 由于编译器将源程序翻译成中间代码的工作是机械的、按固定模式进行的,因此,生成的中间代码往往在时间上和空间上有很大的浪费。当需要生成高效的目标代码时,就必须进行优化。
2.4 对于高级语言源程序,若( ),则可断定程序中出现语法错误。
问题1选项
A.编译时发现所定义的变量未赋初值
B.编译时发现表达式中的括号不匹配
C.运行时出现数组下标越界的情况
D.运行时出现除数为0的情况
参考答案: B
试题解析:本题考查程序语言基础知识。
由用户编写的源程序不可避免地会有一些错误,这些错误大致可分为静态错误和动态错误两类。
动态错误也称为动态语义错误,它们发生在程序运行时,例如变量取零时作除数、引用数组元素下标越界等。
静态错误是指编译时所发现的程序错误,可分为语法错误和静态语义错误,如单词拼写错误、标点符号错、表达式中缺少操作数、括号不匹配等有关语言结构上的错误称为语法错误;
而语义分析时发现的运算符与运算对象类型不合法等错误属于静态语义错误。对于有语法错误的程序,在编译阶段就会报错。