1、简单算术表达式的结构可以用下面的上下文无关文法进行描述(E为开始符号),________是符合该文法的句子。
E→T|E+T
T→F|T×F
F→-F|N
N→0|1|2|3l4|5|6|7|8|9
A.2--3×4
B.2+-3×4
C.(2+3)×4
D.2×4-3
2、语法制导翻译是一种_____方法。
A.动态语义分析
B.中间代码优化
C.静态语义分析
D.目标代码优化
3、将高级语言源程序通过编译或解释方式进行翻译时,可以先生成与源程序等价的某种中间代码。以下关手中间代码的叙途中,正确的是________。
A.中间代码常采用符号表来表示
B.后缀式和三地址码是常用的中间代码
C.对中间代码进行优化要依据运行程序的机器特性
D.中间代码不能跨平台
4、在以阶段划分的编译过程中,判断程序语句的形式是否正确属于_______阶段的工作。
A 词法分析 B 语法分析 C 语义分析 D 代码生成
5、乔姆斯基(Chomsky)将文法分为四种类型,程序设计语言的大多数语法现象可用其中的__________描述。
A 上下文有关文法 B 上下文无关文法 C 正规文法 D 短语结构文法
6、程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的____。
A 地址 B 类型 C 名称 D 值
7、已知文法G:S->A0|B1,A->S1|1,B->S0|0,其中S是开始符号,从S出发可以推导出____。
A 所有由0构成的字符串
B 所有由1构成的字符串
C 某些0和1个数相等的字符串
D 所有0和1个数不同的字符串
8、算数表达式a+(b-c)*d的后缀式是_____(-、+、*、表示算数的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
A bc-d*a+
B abc-d*+
C ab+c-d*
D abcd-*+
9、将高级语言程序翻译为机器语言的过程中,常引入中间代码,其好处是_______。
A 有利于反编译处理
B 有利于进行与机器无关的优化
C 尽早发现语法错误
D 可以简化语法和语义分析
10、对高级语言程序进行编译的过程中,有限自动机(NFA或DFA)是进行_____的适当工具。
A 词法分析
B 语法分析
C 语义分析
D 出错处理
11、弱类型语言(动态类型语言)是指不需要进行变量/对象类型声明的语言。_____属于弱类型语言。
A Java B C/C++ C Python D C#
网友评论