编译原理期末试卷

一:编译原理题目

习题一、单项选择题

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、使用 可以定义一个程序的意义。

a.语义规则b.词法规则

c.产生规则d.词法规则

7、词法分析器的输入是 。

a.单词符号串b.源程序

c.语法单位d.目标程序

8、中间代码生成时所遵循的是- 。

a.语法规则b.词法规则

c.语义规则d.等价变换规则

9、编译程序是对 。

a.汇编程序的翻译b.高级语言程序的解释执行

c.机器语言的执行d.高级语言的翻译

10、语法分析应遵循 。

a.语义规则b.语法规则

c.构词规则d.等价变换规则

解答

1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。

2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。

3、对编译而言,变量既持有左值又持有右值,故选c。

4、编译程序打交道最多的就是各种表格,因此选d。

5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。

6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。因此选a。

7、b 8、c 9、d 10、c

二、多项选择题

1、编译程序各阶段的工作都涉及到 。

a.语法分析b.表格管理c.出错处理

d.语义分析e.词法分析

2、编译程序工作时,通常有 阶段。

a.词法分析b.语法分析c.中间代码生成

d.语义检查e.目标代码生成

解答

1.b、c 2. a、b、c、e

三、填空题

1、解释程序和编译程序的区别在于 。

2、编译过程通常可分为5个阶段,分别是 、语法分析 、代码优化和目标代码生成。3、编译程序工作过程中,第一段输入是 ,最后阶段的输出为 程序。

4、编译程序是指将 程序翻译成 程序的程序。解答

是否生成目标程序 2、词法分析 中间代码生成 3、源程序目标代码生成4、源程序 目标语言

一、单项选择题

1、文法G:S→xSx|y所识别的语言是 。

a. xyxb. (xyx)*c. xnyxn(n≥0)d. x*yx*

2、文法G描述的语言L(G)是......余下全文>>

二:编译原理试题· 10分

Lex和Yacc应用方法(一).初识Lex

草木瓜 20070301

Lex(Lexical Analyzar 词法分析生成器),Yacc(Yet Another Compiler Compiler

编译器代码生成器)是Unix下十分重要的词法分析,语法分析的工具。经常用于语言分

析,公式编译等广泛领域。遗憾的是网上中文资料介绍不是过于简单,就是跳跃太大,

入门参考意义并不大。本文通过循序渐进的例子,从0开始了解掌握Lex和Yacc的用法。

一.Lex(Lexical Analyzar) 初步示例

先看简单的例子(注:本文所有实例皆在RetHat Linux下完成):

一个简单的Lex文件 exfirst.l 内容:

%{

#include "stdio.h"

%}

%%

[\n] ;

[0-9]+ printf("Int : %s\n",yytext);

[0-9]*\.[0-9]+ printf("Float : %s\n",yytext);

[a-zA-Z][a-zA-Z0-9]* printf("Var : %s\n",yytext);

[\+\-\*\/\%] printf("Op : %s\n",yytext);

. printf("Unknown : %c\n",yytext[0]);

%%

在命令行下执行命令flex解析,会自动生成lex.yy.c文件:

[root@localhost liweitest]flex exfirst.l

进行编译生成parser可执行程序:

[root@localhost liweitest]cc -o parser lex.yy.c -ll

[注意:如果不加-ll链结选项,cc编译时会出现以下错误,后面会进一步说明。]

/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/../../../crt1.o(.text+0x18): In function `_start':

../sysdeps/i386/elf/start.S:77: undefined reference to `main'

/tmp/cciACkbX.o(.text+0x37b): In function `yylex':

: undefined reference to `yywrap'

/tmp/cciACkbX.o(.text+0xabd): In function `input':

: undefined reference to `yywrap'

collect2: ld returned 1 exit status

创建待解析的文件 file.txt:

title

i=1+3.9;

a3=909/6

bcd=4%9-333

通过已生成的可执行程序,进行文件解析。

[root@localhost liwei......余下全文>>

三:编译原理 题目

习题一、单项选择题

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、使用 可以定义一个程序的意义。

a.语义规则b.词法规则

c.产生规则d.词法规则

7、词法分析器的输入是 。

a.单词符号串b.源程序

c.语法单位d.目标程序

8、中间代码生成时所遵循的是- 。

a.语法规则b.词法规则

c.语义规则d.等价变换规则

9、编译程序是对 。

a.汇编程序的翻译b.高级语言程序的解释执行

c.机器语言的执行d.高级语言的翻译

10、语法分析应遵循 。

a.语义规则b.语法规则

c.构词规则d.等价变换规则

解答

1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。

2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。

3、对编译而言,变量既持有左值又持有右值,故选c。

4、编译程序打交道最多的就是各种表格,因此选d。

5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。

6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。因此选a。

7、b 8、c 9、d 10、c

二、多项选择题

1、编译程序各阶段的工作都涉及到 。

a.语法分析b.表格管理c.出错处理

d.语义分析e.词法分析

2、编译程序工作时,通常有 阶段。

a.词法分析b.语法分析c.中间代码生成

d.语义检查e.目标代码生成

解答

1.b、c 2. a、b、c、e

三、填空题

1、解释程序和编译程序的区别在于 。

2、编译过程通常可分为5个阶段,分别是 、语法分析 、代码优化和目标代码生成。3、编译程序工作过程中,第一段输入是 ,最后阶段的输出为 程序。

4、编译程序是指将 程序翻译成 程序的程序。解答

是否生成目标程序 2、词法分析 中间代码生成 3、源程序目标代码生成4、源程序 目标语言

一、单项选择题

1、文法G:S→xSx|y所识别的语言是 。

a. xyxb. (xyx)*c. xnyxn(n≥0)d. x*yx*

2、文法G描述的语言L(G)是指 。

a......余下全文>>

四:编译原理试题 10分

习题一、单项选择题

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、使用 可以定义一个程序的意义。

a.语义规则b.词法规则

c.产生规则d.词法规则

7、词法分析器的输入是 。

a.单词符号串b.源程序

c.语法单位d.目标程序

8、中间代码生成时所遵循的是- 。

a.语法规则b.词法规则

c.语义规则d.等价变换规则

9、编译程序是对 。

a.汇编程序的翻译b.高级语言程序的解释执行

c.机器语言的执行d.高级语言的翻译

10、语法分析应遵循 。

a.语义规则b.语法规则

c.构词规则d.等价变换规则

解答

1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。

2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。

3、对编译而言,变量既持有左值又持有右值,故选c。

4、编译程序打交道最多的就是各种表格,因此选d。

5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。

6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。因此选a。

7、b 8、c 9、d 10、c

二、多项选择题

1、编译程序各阶段的工作都涉及到 。

a.语法分析b.表格管理c.出错处理

d.语义分析e.词法分析

2、编译程序工作时,通常有 阶段。

a.词法分析b.语法分析c.中间代码生成

d.语义检查e.目标代码生成

解答

1.b、c 2. a、b、c、e

三、填空题

1、解释程序和编译程序的区别在于 。

2、编译过程通常可分为5个阶段,分别是 、语法分析 、代码优化和目标代码生成。3、编译程序工作过程中,第一段输入是 ,最后阶段的输出为 程序。

4、编译程序是指将 程序翻译成 程序的程序。解答

是否生成目标程序 2、词法分析 中间代码生成 3、源程序目标代码生成4、源程序 目标语言

一、单项选择题

1、文法G:S→xSx|y所识别的语言是 。

a. xyxb. (xyx)*c. xnyxn(n≥0)d. x*yx*

2、文法G描述的语言L(G)是指 。

a......余下全文>>

五:编译原理试题

你发那么多条求助信息,也不给点分,大家怎么帮你啊,我来回答吧!记得给我追加分啊。

1.若源程序是用高级语言编写的,目标程序是 机器语言程序或汇编程序 ,则其翻译程序称为编译程序.

2.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。其中,词法定析器用于识别 单词 。

3.编译方式与解释方式的根本区别为是否生成目标代码。

4.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法的一个句型 。

设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。

继续做题中.......

六:有会编译原理的么,应付考试,问问题

我会

七:有人知道明天编译原理考试的重点么

编译程序的任务是把高级语言源程序翻译成为目标汇编程序,它是把编译和运行分开进行的,编译过程中需要对源程序、目标代码以及相应的符号表开辟空间,运行阶段需要存储目标代码以及数据,

对源程序进行编译,可以对代码进行相应的报错处理或代码优化,节省运行时间。

八:编译原理期末课程设计

工大学生伤不起啊鐧惧害鍦板浘

九:编译原理这门课难不,介绍下啊,我没上课但要考试啊。。。。。

如果您觉得有用的话,请及时采纳我的答案,谢谢。

我认为这门课不难,好好学吧,把同学的笔记接来看看,如果只求过的话,我相信努力几天还是没问题的。编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。

这门课的基本概念:编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源程序(source language) 编写的程序作为输入,而产生用目标语言(target language )编写的等价程序。通常地,源程序为高级语言(high-level language ),如C或C + + ,而目标语言则是目标机器的目标代码 (object code,有时也称作机器代码(machine code )),也就是写在计算机机器指令中的用于运行的代码。这一过程可以表示为:  源程序→编译器 →目标程序

十:什么是编译原理

编译:就是将程序语言进行翻译,生成可供用户直接执行的二进制代码,即可执行文件。

任务是个比较模糊的概念,指的是操作系统中正在进行的工作,既可以指进程,也可以指程序。

程序指的是可以连续执行,并能够完成一定任务的一条条指令的集合。

进程是程序在一个数据集合上运行的过程,它是传统操作系统进行资源分配和调度的一个独立单位。

线程是一个指令执行序列,是操作系统调度的最小单位。一个或多个线程构成进程,构成一个进激的线程之间共享资源。进程和线程之间的最大区别就是线程不能独立拥有资源,进程拥有自己的资源。

扫一扫手机访问

发表评论