超星软件编译技术期末答案(学习通2023课后作业答案)

热门考题库2024-05-19 06:10:5951309抢沙发
超星软件编译技术期末答案(学习通2023课后作业答案)摘要: 1.1什么是编译程序1、【单选题】中间代码生成所依据的是 )。A、词法规则B、语法规则C、语义规则D、产生式规则2、【单选题】编译程序是对( )。A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译 ...

超星软件编译技术期末答案(学习通2023课后作业答案)

1.1什么是超星编译程序

1、【单选题】中间代码生成所依据的软件是( )。
A、编译词法规则
B、技术语法规则
C、期末语义规则
D、答案产生式规则

2、学习【单选题】编译程序是通课对( )。
A、后作机器语言的业答执行
B、汇编语言的超星翻译
C、高级语言的软件翻译
D、高级语言程序的编译解释执行

3、【单选题】编译的技术各阶段工作都涉及 。
A、期末词法分析
B、表格处理
C、语义分析
D、语法分析

4、【单选题】构造编译程序应掌握()
A、源程序
B、目标语言
C、编译方法
D、以上三项都是

5、【单选题】解释程序和编译程序的区别在于()
A、是否生成中间代码
B、加工的对象不同
C、使用的实现技术不同
D、是否生成目标代码

6、【单选题】编译程序有5个阶段,其中()的目的是使最后阶段产生的目标代码更为
A、代码优化
B、目标代码生成
C、词法分析
D、语法分析

7、【单选题】编译程序各阶段的工作往往是()进行的
A、顺序
B、并行
C、成批
D、穿插

8、【单选题】词法分析所依据的是
A、语义规则
B、词法规则
C、语法规则
D、等价变换规则

9、【单选题】高级语言源程序经编译后产生的程序叫
A、源程序
B、目标程序
C、函数
D、过程

10、【单选题】编译程序的词法分析器用于识别
A、字符串
B、语句
C、单词
D、标识符

11、【判断题】编译阶段按前后端组合,可分为编译前端和编译后端,其中与目标机有关的阶段一般属于前端,而与源语言相关的阶段一般属于后端

12、【判断题】编译程序是对高级语言程序的解释执行

13、【判断题】编译程序是指把用高级语言源程序翻译成面向计算机的目标程序。

14、【判断题】任何一种汇编语言源程序是机器语言程序

15、【判断题】目标程序一定是机器语言程序。

16、【判断题】编译程序中错误处理的任务是对检查出的错误进行修改。

17、【判断题】源程序与目标程序是等价关系。

18、【判断题】解释程序是用来逐句分析执行源程序语句的计算机程序

19、【判断题】高级语言编写的源程序都必须通过编译,产生目标序后才能运行。

20、【判断题】高级语言程序到低级语言程序的转换是基于语义的等价变换

2.1文法的直观概念

1、【单选题】文法:G:S→xSx | y所识别的语言是( )。
A、L(G)={ xnyxn|n>=1}
B、L(G)={ (xyx)n |n>=1}
C、L(G)={ xnyxn |n>=0}
D、L(G)={ xnynx |n>=1}

2、【单选题】设有文法G[S]:S→S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有( )
A、ab0
B、acbc01
C、a0b0a
D、bc10

3、【单选题】文法G产生的( )的全体是该文法描述的语言。
A、句型
B、终结符集
C、非终结符集
D、句子

4、【单选题】若文法G定义的语言是无穷集,则文法一定是( )
A、递归的
B、2型文法
C、二义性的
D、无二义性的

5、【单选题】一个文法所描述的语言是( )
A、唯一的
B、不唯一的
C、可能唯一

6、【单选题】文法 S→aaS|abc 定义的语言是( )。
A、L(G)={ a2nbc|n>0}
B、L(G)={ ananbc|n>0}
C、L(G)={ a2n-1bc|n>0}
D、L(G)={ anbc|n>0}

7、【单选题】设有文法G[S]=({ S,B},{ b},{ S→b|bB,B→bS},S),该文法所描述的语言是
A、L(G)={ bn|n>=0}
B、L(G)={ b2n|n>=0}
C、L(G)={ x2n+1|n>=0}
D、L(G)={ x2n+1|n>=1}

8、【单选题】给定文法A→bA|cc,下面的符号串中为该文法句子的是 ①cc ②bcbc ③bcbcc ④bcbcc ⑤bbbcc 可选项有
A、①⑤
B、①③④⑤
C、①④
D、①④⑤

9、【判断题】规范归约和规范推导是互逆的两个过程。

10、【判断题】文法的开始符号可以是终结符或非终结符。

11、【判断题】一个文法的所有句型的集合构成该文法所能接受的语言。

12、【判断题】符号就是字母。

13、【判断题】最右推导是规范推导

14、【判断题】描述一个语言的文法是唯一的

2.6句型的分析

1、【单选题】一个句型中的最左( )称为该句型的句柄。
A、短语
B、直接(简单)短语
C、素短语
D、终结符号

2、【单选题】下面说法正确的是( )
A、一个2型文法生成语言称上下文有关语言
B、一个正规语言可能对应多个正规文法

3、【单选题】如果文法G是无二义的,则它的任何句子α( )
A、最左推导和最右推导对应的语法树必定相同
B、最左推导和最右推导对应的语法树可能不同
C、最左推导和最右推导必定相同
D、可能存在两个不同的最左推导,但它们对应的语法树相同

4、【单选题】正则文法( )二义性的。
A、可以是
B、一定不是
C、一定是

5、【单选题】乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。其中3型文法是( )
A、非限制文法
B、正则文法
C、上下文有关文法
D、上下文无关文法

6、【单选题】下面不属于正规文法的是( )。
A、S→0 | 1 | 00 | 11
B、S→0 | 1 | 0A | 1B,A →0,B →1
C、A→aS | Sb | a | b
D、S→0 | 0S

7、【单选题】下面说法正确的是( )
A、一个正规文法也一定是二型文法
B、一个二型文法也一定能有一个等价的正规文法

8、【单选题】已知语言L(G)={ anbbn|n>=1},则下述文法中, 可以产生语言L(G)。
A、Z→aZb|aAb|ε A→aAb|b
B、A→aAb A→b
C、Z→AbB A→aA|a B→bB|b
D、Z→aAb A→aAb|b

9、【判断题】正规文法也是上下文无关文法

10、【判断题】一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义性文法

11、【判断题】文法的二义性与语法的二义性两个不同的概念。

12、【判断题】正规文法产生的语言都可以用上下文无关文法来描述。

13、【判断题】1型文法对规则的限制比2型文法对规则的限制要多一些。

14、【判断题】若一个句型中出现了某一产生式的右部,则此右部一定是该句型的句柄。

3.5有穷自动机和正规文法

1、【单选题】正规式0(0|1)*1表示的集合
A、以0开头和1结尾的二进制数组成的集合
B、以0结尾的二进制数组成的集合
C、含奇数个0的二进制数组成的集合
D、含偶数个0的二进制数组成的集合

2、【单选题】有穷自动机DFA M1和 DFA M2等价是指
A、DFA M1和 DFA M2的状态数相等
B、DFA M1和 DFA M2的状态数和有向边数相等
C、DFA M1和 DFA M2所识别的语言集相同
D、DFA M1和 DFA M2的有向边条数相等

3、【单选题】(a|b)*(a|b)对应的正规文法是( )。
A、S->aSb|ab
B、S->Sa|Sb|ab
C、S->aS|bS|a|b
D、S->aS|bS|ε

4、【单选题】在词法分析阶段不能识别的是 。
A、标识符
B、运算符
C、四元式
D、常数

5、【单选题】设Σ={ 0,1},则∑上所有至少含有一个1的二进制数正规式为
A、(1|0)*1(1|0)*
B、1(1|0)*1
C、(1|0)*101
D、11(1|0)*

6、【单选题】有限自动机能识别( )。
A、上下文无关文法
B、正规文法
C、短语文法
D、上下文有关文法

7、【单选题】不是NFA的成分。
A、有穷字母表
B、唯一的初始状态
C、终止状态集合
D、有限状态集合

8、【单选题】与(a|b)*(a|b)等价的正规式是( )。
A、a*| b*
B、(a|b)(a|b)*
C、(ab)*(a|b)
D、(a|b)*

9、【单选题】正则文法S->abS|ab对应的正则式是
A、(a|b)*
B、(ab)*ab
C、(ab)*
D、a*b*

10、【单选题】2、下面哪些说法是错误的( )。
A、有向图是一个状态转换图
B、状态转换图是一个有向图
C、有向图是一个DFA
D、DFA可以用状态转换图表示

11、【判断题】一个有穷状态自动机中,有且仅有一个唯一的终态

12、【判断题】对任意给定的一个正规式R,都可以将它转换为与之功能等价的正规文法,或与之功能等价的有穷自动机。

13、【判断题】文法G[S]: S→aS|bA A→bA|ε 描述的语言对应的正规式是a*bb*

14、【判断题】字母表∑上的一个符号串集V∈∑*是正规的,当且仅当在∑上存在一个不确定的有穷自动机M,使得V=L(M)

15、【判断题】有穷自动机只有一个初态。

16、【判断题】对任一个正规式r,都存在一个NFA M,使得L(M)=L(r)。

17、【判断题】与某一个NFA对应的DFA是唯一的。

18、【判断题】确定的自动机以及不确定的自动机都能正确地识别正规集

19、【判断题】自动机M和M′的状态数不同,则二者必不等价

20、【判断题】设r和s分别是正规式,则有L(r|s)=L(r)∪L(s)

1、【单选题】正规式 M 1 和 M 2 等价是指( )。
A、M1和M2的状态数相等
B、M1和M2的有向边条数相等
C、M1和M2所识别的语言集相等
D、M1和M2状态数和有向边条数相等

2、【单选题】与(a|b)*(a|b)等价的正规式是( )。
A、a*| b*
B、(a|b)(a|b)*
C、(ab)*(a|b)
D、(a|b)*

3、【单选题】有限自动机能识别( )。
A、上下文无关文法
B、正规文法
C、短语文法
D、上下文有关文法

4、【判断题】一个有穷状态自动机中,有且仅有一个唯一的终态

5、【判断题】正规文法也是上下文无关文法

4.4自顶向下分析方法

1、【单选题】一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的( )
A、必要条件
B、充分必要条件
C、充分条件
D、没关系

2、【单选题】若一个文法是递归的,则它产生语言的句子个数( )。
A、必定是无穷的
B、根据情况而定
C、是有穷个
D、有穷个,但是个数很大

3、【单选题】若一个文法是递归的,则它产生语言的句子个数( )。
A、是有穷个
B、根据情况而定
C、必定是无穷的
D、有穷个,但是个数很大

4、【单选题】如果文法G是二义的,则下面成立 ( )。
A、文法中的某个句子有两棵不同的最左推导。
B、文法的一个句子对应两棵不同的分析树。
C、文法中的某个句子有两棵不同的最右推导。
D、对于文法中的任意一个句子,它的最左或最右推导对应的分析树相同

5、【填空题】将非LL(1)文法转换为等价的LL(1)文法所采用的两种方法是( )、和( )。但这两种方法并不能保证所有的非LL(1)文法都能转换为等价的LL(1)文法。

6、【填空题】语法分析方法分为自上而下与自下而上两类,自上而下的分析方法方要有( )和( )

7、【填空题】所谓自上而下分析法是指______。

8、【判断题】递归子程序法是一种不确定的自顶向下分析法

9、【判断题】2型文法就又称上下文有关文法

10、【判断题】消除左递归的文法一定是LL(1)文法

11、【判断题】递归下降分析法是一种自下而上分析法。

12、【判断题】规范归约和规范推导是互逆的两个过程。

学习通软件编译技术

软件编译是将源代码转换为可执行文件的过程,是软件开发过程中必不可少的环节。学习通软件编译技术是一项比较基础的技能,对于从事软件开发的人员来说,掌握编译技术非常重要。

编译的基本原理

编译的基本原理是将源代码转化为目标代码,并最终生成可执行文件。具体过程如下:

  1. 预处理:将源代码进行预处理,去掉注释、宏定义等不必要的内容,生成预处理文件。
  2. 编译:将预处理文件编译成汇编文件,生成汇编文件。
  3. 汇编:将汇编文件转换为机器语言的目标文件,生成目标文件。
  4. 链接:将目标文件与库文件进行链接,生成可执行文件。

编译器的分类

根据编译器的处理对象和生成的目标文件类型,编译器可以分为以下几种:

  • 源程序编译器:将源代码编译成目标代码,目标代码是机器无关的中间代码。
  • 目标程序编译器:将机器无关的中间代码编译成机器语言的目标代码,目标代码是与特定机器相关的。
  • 交叉编译器:在一种平台上编译出另一种平台上可执行程序的编译器,常用于嵌入式系统开发。

常见的编译器

常见的编译器有以下几种:

  • GCC:GNU Compiler Collection,是一款开源的编译器,支持多种语言,性能优异,常用于Linux和Unix系统。
  • Clang:是一款基于LLVM编译器前端的编译器,具有较好的错误提示和优化能力,常用于C++开发。
  • Visual C++:是微软公司的C++编译器,支持Windows平台,常用于开发Windows桌面应用程序。

常用的编译选项

编译时可以通过加入一些命令行参数来控制编译的行为,常见的编译选项有以下几种:

  • -c:只进行编译,不进行链接,生成目标文件。
  • -o:指定输出文件名。
  • -Wall:开启所有警告信息。
  • -O:进行代码优化。

Makefile的使用

Makefile是一个用来管理程序编译的脚本文件,通过Makefile可以定义一组编译规则和依赖关系,自动化执行编译操作。Makefile的主要内容包括变量定义、目标定义和规则定义。

变量定义

变量定义用来定义一些常量,方便在后面使用。变量定义格式为:

变量名 = 变量值

变量名必须以大写字母开头,变量值可以是任意字符串,变量名和变量值用等号连接。

目标定义

目标定义用来定义编译的目标文件。目标定义格式为:

目标文件: 依赖文件  [Tab]编译命令

目标文件是需要编译生成的文件,依赖文件是生成目标文件所需要的文件,编译命令是生成目标文件的具体操作,必须以Tab键开头。

规则定义

规则定义用来定义一些通用的规则,可以简化编译过程。规则定义格式为:

规则名:  [Tab]命令

规则名是定义的规则名称,可以在目标定义中引用,命令是规则需要执行的操作。

总结

学习通软件编译技术是一项非常重要的基础技能。编译器的分类、常见的编译器、常用的编译选项以及Makefile的使用都是必须掌握的知识点。通过学习编译技术,可以更好地理解代码运行的原理,从而提升编程能力。

文章版权及转载声明

本文地址:http://www.zzxhsh.org/91c799179.html发布于 2024-05-19 06:10:59
文章转载或复制请以超链接形式并注明出处五煦查题

评论列表 (暂无评论,44人围观)参与讨论