编译原理

编译程序中语法分析器接收以()为单位的输入。A、单词B、表达式C、产生式D、句子

题目

编译程序中语法分析器接收以()为单位的输入。

  • A、单词
  • B、表达式
  • C、产生式
  • D、句子
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

编译程序中的语法分析器接受以______为单位的输入,并产生有关信息供以后各阶段使用。

A.表达式

B.产生式

C.单词

D.语句


参考答案:C

第2题:

是编译程序中语法分析器的接受单位,并产生供以后各阶段使用的有关信息。LR分析法、(2)和(3)是几种常见的语法分析技术,其中(2)和LR分析法属于自下而上分析法,而(3)属于自上而下分析法。LR分析法有SLR(1)、LR(0)、LR(1)和LALR(1)4种,其中(4)的分析能力最强,(5)的分析能力最弱。

A.语句

B.单词

C.产生式

D.表达式


正确答案:B

第3题:

●编译程序中语法分析器接受以 (29) 为单位的输入,并产生有关信息供以后各阶段使用。 (30) 、LR分析法和 (31) 是几种常见的语法分析技术,其中 (30) 和LR分析法属于自下而上分析法,而 (31) 属于自上而下分析法。LR分析法有SLR(1)、LR(0)、LR(1)和LALR(1) 4种,其中 (32) 的分析能力最强, (33) 的分析能力最弱。

(29) A.表达式

B.单词

C.产生式

D.语句

(30) ,(31) A.递归下降法

B.算符优先法

C.语法制导翻译法

D.数据流分类法

(32) ,(33) A.SLR(1)

B.LR(0)

C.LR(1)

D.LALR(1)


正确答案:B,B,A,C,B
 【解析】编译程序中语法分析器接受以单元为单位的输入,并产生有关信息供以后各阶段使用。算符优先法、LR分析法和递归下降法是几种常见的语法分析技术,其中算符优先法和LR分析法属于自下而上分析法,而递归下降法属于自上而下分析法。LR分析法主要有SLR(1)、LR(0)、LR(1)和LALR(1)等4种,其中LR(1)的分析能力最强,LR(0)的分析能力最弱。 

第4题:

编译程序在语法分析阶段能检查出(41)错误。

A.表达式中的括号不匹配

B.以零作除数

C.数组下标越界

D.无穷递归


正确答案:A
解析:本题考查的是编译程序的基本工作原理和基本概念。编译程序的功能是把某高级语言编写的源程序翻译成与之对应的目标程序(汇编语言程序或机器语言程序)。编译程序的工作过程可以分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等6个阶段。其中,词法分析阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号。在词法分析的基础上,语法分析阶段根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”、“程序”等。语法规则就是各类语法单位的构成规则。通过语法分析确定整个输入串是否构成一个语法上正确的程序。如果源程序中没有语法错误,语法分析后就能正确地构造出其语法树;否则就指出语法错误,并给出相应的诊断信息。语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码。程序员编写的源程序中往往会有一些错误,这些错误大致被分为静态错误和动态错误两类。所谓动态错误,是指源程序中的逻辑错误,它们发生在程序运行的时候,比如算法逻辑上的错误。动态错误也被称为动态语义错误,如变量取值为0时被用作除数,引用数组元素时下标出界等。静态错误又可以分为语法错误和静态语义错误。词法和语法错误是指有关语言结构上的错误,如单词拼写错误就是一种词法错误,表达式中缺少操作数、括号不匹配是不符合语法规则要求的语法错误等。静态的语义错误是指分析源程序时可以发现的语言意义上的错误,如乘法运算的两个操作数中一个是整型变量名,而另一个是数组等。表达式中的括号不匹配属于语言结构上的错误,所以可在语法分析阶段检查出该错误。

第5题:

yacc是一个生成编译程序的工具,它的输入是文法G的产生式规则,它的输出是文法G的(29)。

A.优先分析器

B.LL(1)分析器

C.LR(1)分析器

D.LALR(1)分析器


正确答案:D
解析:一个LR分析器由以下3个部分组成。(1)驱动器:或称驱动程序。对所有LR分析器,驱动程序都是相同的。(2)分析表:不同的文法具有不同的分析表。同一文法采用不同的LR分析方法时,分析表也不同。分析表又可分为动作表(ACTION)和状态转换表(GOTO)两个部分,它们都可用二维数组表示。(3)分析栈:包括文法符号栈和相应的状态栈。分析器的动作由栈顶状态和当前输入符号决定(LR(0)分析器不须向前查看输入符号),LR分析器的模型如下图所示。设Si为状态,i为文法符号,ACTION[Si,a]=Sj规定了栈顶状态为Si且遇到输入符号a时应执行的动作。状态转换表GOTO[Si,X]=Sj表示当状态栈顶为Si且文法符号栈顶为X时应转向状态Sj。分析表实际上是一个DFA,它识别文法G的所有右句型的活前缀。构造LR分析器,本质上是构造LR分析表。根据文法的产生式规则,LR分析表用程序能自动生成。yacc的输入,本质上是文法的产生式规则,称为yacc的源程序,通过yacc编译程序,生成用C书写的LALR(1)分析表。再经过C编译器,就得到LALR(1)分析器。LALR(1)分析器比SLR(1)适用的文法范围要宽,一般能满足常用程序语言的需要;和LR(1)比,它适用的文法范围要窄,但时空效率都有很大提高。

第6题:

现代汉语中有五级语法单位:语素、词、()、句子、句群。

A.词组

B.单词

C.短句

D.短语


答案:D

第7题:

作为语法结构单位的词组具有双重语法特点,是指:

A、单词的个体性的特点

B、结构的整体性特点

C、能够充当句子成分

D、具有实在意义


参考答案:AB

第8题:

词法分析器的输入是什么()。

A.单词串

B.源程序

C.语法单位

D.目标程序


正确答案:B

第9题:

编译程序在语法分析阶段能检查出______错误。

A.表达式中的括号不匹配

B.以零作除数

C.数组下标越界

D.无穷递归


正确答案:A
解析:编译程序的功能是把高级语言编写的源程序翻译成与之对应的目标程序。编译程序的工作过程可以分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。表达式括号不匹配,属于语言结构的错误,在语法分析阶段可以检查出该错误,故应选A。

第10题:

编译程序中语法分析器接受以(29)为单位的输入,并产生有关信息供以后各阶段使用。(30)、LR分析法和(31)是几种常见的语法分析技术,其中(30)和LR分析法属于自下而上分析法,而(31)属于自上而下分析法。LR分析法有SLR(1)、LR(0)、LR(1)和LALR(1)4种,其中(32)的分析能力最强,(33)的分析能力最弱。

A.表达式

B.单词

C.产生式

D.语句


正确答案:B