四川大学编译原理与操作系统1999真题
大学计算机编译原理练习题及答案
大学计算机编译原理练习题及答案编译原理是计算机科学中的重要基础课程,其目的是让学生了解编译器的工作原理、构造与实现方法。
为了帮助同学们更好地掌握编译原理,以下是一些练习题及其答案,供大家参考学习。
1. 什么是编译器?它的主要功能是什么?编译器是一种将源代码(高级语言)转化为目标代码(机器语言)的软件工具。
它的主要功能包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。
2. 简要解释编译器的工作原理。
编译器的工作原理可以分为以下几个步骤:a. 词法分析:将源代码分解成各个词素(tokens)的序列。
b. 语法分析:根据源代码的语法规则,构建语法树。
c. 语义分析:对语法树进行语义检查,确保程序的合法性。
d. 中间代码生成:将语法树转化为中间代码,方便后续的优化。
e. 代码优化:对中间代码进行各种优化,提高程序的性能和效率。
f. 目标代码生成:将优化后的中间代码转化为目标代码(机器语言)。
3. 解释以下概念:词法单元、词法分析器、上下文无关文法、语法分析器。
- 词法单元:是最小的语法单元,是词法分析器生成的结果。
可以是标识符、关键字、常量、运算符等。
- 词法分析器:负责将源代码分解为词法单元序列的工具,将输入的字符流转化为记号流。
- 上下文无关文法:是一种形式语言,用于描述程序中的语法结构,不依赖于上下文环境。
常用于语法分析器进行代码语法分析和生成语法树。
- 语法分析器:根据给定的上下文无关文法,对词法分析器生成的记号流进行语法检查和语法树的构建。
4. 下面是一个简化的算术表达式的上下文无关文法描述,请写出其对应的语法树。
```<expression> -> <term> | <expression> + <term> | <expression> - <term> <term> -> <factor> | <term> * <factor> | <term> / <factor><factor> -> <number> | (<expression>)<number> -> [0-9]+```例如,对于表达式 "3 + 5 * (2 - 1)",对应的语法树为:```expression/ \expression +/ \ / \term + term| \ / |factor | factor| | |3 term factor/ \ |factor 5 2|term|factor|1```5. 简要解释语义分析的主要任务。
编译原理习题及答案(整理后)
编译原理习题及答案(整理后)第⼀章1、将编译程序分成若⼲个“遍”是为了。
b.使程序的结构更加清晰2、构造编译程序应掌握。
a.源程序b.⽬标语⾔c.编译⽅法3、变量应当。
c.既持有左值⼜持有右值4、编译程序绝⼤多数时间花在上。
d.管理表格5、不可能是⽬标代码。
d.中间代码6、使⽤可以定义⼀个程序的意义。
a.语义规则7、词法分析器的输⼊是。
b.源程序8、中间代码⽣成时所遵循的是- 。
c.语义规则9、编译程序是对。
d.⾼级语⾔的翻译10、语法分析应遵循。
c.构词规则⼆、多项选择题1、编译程序各阶段的⼯作都涉及到。
b.表格管理c.出错处理2、编译程序⼯作时,通常有阶段。
a.词法分析b.语法分析c.中间代码⽣成e.⽬标代码⽣成三、填空题1、解释程序和编译程序的区别在于是否⽣成⽬标程序。
2、编译过程通常可分为5个阶段,分别是词法分析、语法分析中间代码⽣成、代码优化和⽬标代码⽣成。
3、编译程序⼯作过程中,第⼀段输⼊是源程序,最后阶段的输出为标代码⽣成程序。
4、编译程序是指将源程序程序翻译成⽬标语⾔程序的程序。
⼀、单项选择题1、⽂法G:S→xSx|y所识别的语⾔是。
c. x n yx n(n≥0)d. x*yx*2、⽂法G描述的语⾔L(G)是指。
a. L(G)={α|S + ?α , α∈VT*} b. L(G)={α|S*?α, α∈VT*}c. L(G)={α|S *?α,α∈(VT∪V N*)} d. L(G)={α|S+ ?α, α∈(VT∪V N*)}3、有限状态⾃动机能识别。
a. 上下⽂⽆关⽂法b. 上下⽂有关⽂法c.正规⽂法d. 短语⽂法4、设G为算符优先⽂法,G的任意终结符对a、b有以下关系成⽴。
a. 若f(a)>g(b),则a>bb.若f(a)c. a~b都不⼀定成⽴d. a~b⼀定成⽴5、如果⽂法G是⽆⼆义的,则它的任何句⼦α。
a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由⽂法的开始符经0步或多步推导产⽣的⽂法符号序列是。
编译原理试题及答案
编译原理试题及答案
编译原理是计算机科学中的一门重要课程,它涉及到程序设计语言的语法、语义分析以及编译器的设计与实现等内容。
下面我们将为大家提供一些编译原理的试题及答案,希望能够帮助大家更好地理解和掌握这门课程的知识。
1. 什么是编译原理?
编译原理是研究编译器的设计与实现的一门学科,它主要包括词法分析、语法分析、语义分析、中间代码生成、代码优化和代码生成等内容。
2. 什么是词法分析?
词法分析是编译原理中的一个重要内容,它主要负责将源程序转换成一个个的单词符号,也就是词法单元。
3. 什么是语法分析?
语法分析是编译原理中的另一个重要内容,它主要负责将词法单元序列转换成抽象语法树,以便进行后续的语义分析和中间代码生成。
4. 什么是语义分析?
语义分析是编译原理中的一个关键环节,它主要负责对源程序进行语义检查,以确保程序的正确性和合法性。
5. 什么是中间代码生成?
中间代码生成是编译原理中的一个重要环节,它主要负责将源程序转换成一种中间形式的代码,以便进行后续的代码优化和代码生成。
6. 什么是代码优化?
代码优化是编译原理中的一个关键环节,它主要负责对中间代码进行优化,以提高程序的执行效率和减少资源消耗。
7. 什么是代码生成?
代码生成是编译原理中的最后一个环节,它主要负责将优化后的中间代码转换成目标机器代码,以便计算机能够执行。
以上就是关于编译原理的一些试题及答案,希望能够帮助大家更好地理解和掌握这门课程的知识。
如果大家对编译原理还有其他疑问,可以随时向我们提问,我们将竭诚为大家解答。
(完整版)四川大学编译原理问答题
1.编译器翻译步骤2.①词法分析:将源程序读作字符文件并将其分为若干记号。
②语法分析:从扫描程序中获得记号形式的源代码,并确定程序的语法结构,以及构造出表达该结构的语法树或分析树。
3.代码优化的目的:产生更加高效的代码,提高程序运行速度。
4.编译器的几种数据结构:①符号表: 是存放源程序中定义的所有符号信息的数据结构,这个数据结构中的信息与标识符有关:函数、变量、常量以及数据类型。
符号表几乎与编译器的所有阶段交互:扫描程序、分析程序或将标识符输入带表格中的语义分析程序;语义分析程序将增加数据类型和其他信息;优化阶段和代码生成阶段也将利用由符号表提供的信息选出恰当的代码。
②文字表:存放程序中用到的数字常量和字符串常量,且无需删除。
③错误处理器:对源程序中错误的反应,包括不同的操作,每个操作给出指定的阶段和结构。
5. 编译器的前端和后端分别包括哪几个阶段?前后端分开有什么好处?前端:只依赖于源语言的操作,包括扫描程序、分析程序和语义分析程序后端:只依赖于目标语言的操作,包括代码生成器和一些优化分析优点:这一结构对于编译器的可移植性十分重要,此时设计的编译器既能改变源代码,又能改变目标代码。
6.解释器和编译器的本质区别:①编译器把每一条语句都翻译成机器语言,生成了可多次使用的目标代码;而解释器没有生成目标代码,每一次执行程序都需要重新翻译。
②解释程序立即执行源程序,而不是生成在翻译完成之后才执行的目标代码。
7. NFA和DFA①NFA(非确定性有穷自动机)的基本特性在于从一个状态遇到同一个输入符号时,可能有多个转换。
②相对于NFA,DFA(确定性有穷自动机)中的状态转换都是确定的,在同一个状态下遇到同一个输入符号时只会存在一个转换。
8.分析树和抽象语法树的区别是什么?①分析树是一个作了标记的树,其内部的节点由其表示的结构名标出,树叶节点则表示输入中的记号序列。
②抽象语法树是源代码记号序列的抽象表示。
③分析树不利于表示程序结构,包括了比生成可执行代码所需要的更多信息。
编译原理试题及答案
编译原理试题及答案
试题:
1. 解释编译原理的定义,同时给出编译器的作用。
2. 简要描述编译过程中的四个基本步骤。
3. 解释词法分析器的功能和作用。
4. 解释语法分析器的功能和作用。
答案:
1. 编译原理是研究如何将高级语言程序转化为等价机器语言程序的一门学科。
编译器是将高级语言文本转换成等价的机器语言的软件工具。
它负责将源代码转化为目标代码,以便计算机能够理解和执行。
2. (1) 词法分析:将源代码分解成一系列单词或标记。
(2) 语法分析:根据语法规则组织单词或标记形成语法树。
(3) 语义分析:分析语法树以检测语义错误。
(4) 代码生成:根据语法树生成目标代码。
3. 词法分析器的功能是将源代码分解成一系列单词或标记。
它将源代码读取为字符流,然后将这些字符组成单词,同时可以去除空格、注释等不具有实际意义的内容。
词法分析器的作用是为语法分析器提供正确的单词序列,为后续的语义分析和代
码生成步骤建立基础。
4. 语法分析器的功能是根据语法规则组织单词或标记形成语法树。
它通过构建语法树来分析源代码的语法结构,同时可以检测语法错误。
语法分析器的作用是为后续的语义分析和代码生成步骤提供一个结构化的表示形式,便于后续的处理和转换。
四川大学计算机操作系统试题
四川大学2000年攻读硕士学位研究生入学考试试题操作系统部分(共30分)一、单项选择题(在下列四个备选答案中,选出一个正确答案,填在园括号中;每小题1分,共6分)1、动态式(或称可变式)分区管理的分配策略中的首次适应算法采用(A )A、按始址递增排列空闲区B、按始址递减排列空闲区C、按分区大小递增排列空闲区D、任意排列空闲区2、下列关于索引表的叙述,(B )是正确的。
A、索引表中每个记录的索引项可以有多个B、对索引文件存取时,必须先查找索引表C、索引表中含有索引文件的数据及其物理地址D、建立索引表的目的之一是为减少存贮空间3、目标程序所对应的地址空间是(B )A、各空间B、逻辑地址空间C、存贮空间D、物理地址空间4、既考虑作业等待时间,又考虑作业执行时间的调度算法是(B )A、响应比高者优先B、短作业优先C、优先级调度D、先来先服务5、对一个文件的访问,常用( A )共同控制A、用户访问权限和文件属性B、用户访问权限和用户优先级C、优先级和文件属性D、文件属性和口令6、地址重定位的对象是(D )A、源程序B、编译程序C、目标程序D、执行程序二、填空题(每小题1分,共6分)1、操作系统具有的四个基本特征是并发、共享、虚拟、异步。
2、存贮器管理应具有以下的功能:内存分配、内存保护、地址映射、内存扩充。
3、文件管理的基本功能有存储空间管理、目录管理、读写管理、。
4、记录型信号量机制中,S·V alue>0时的值表示目前可用资源的数目,每次P操作意味着进程申请资源;若S·V alue<0,则表示目前无可用资源,此时进程应阻塞。
5、Spooling 系统是由磁盘中的输入井和输出井,内存中的输入缓冲和输出缓冲以及和输入进程和输出进程所构成。
6、为实现消息缓冲通信,在PCB中应增加消息队列首地址MQ 、消息队列互斥量MUTEX 和SM 消息队列资源信号量三个数据项。
三、解释术语(每个2分,共6分)1、虚拟存贮器2、多道程序设计3、内核虚拟存储器:具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的存储器系统称虚拟存储器。
《编译原理》历年试题及答案
<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题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.正规式MI和M2等价是指____。
a. MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d. Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—。
a.语法规则 b.词法规则 c.语义规则 d.等价变换规则8.后缀式ab+cd+/可用表达式___来表示。
a.a+b/c+d b.(a+b)/(c+d) c.a+b/(c+d) d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为______管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守________原则。
a.先请先放b.先请后放c.后请先放d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。
2. 已知文法G[E]:E→ET+|T T→TF* | F F→F^ | a试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄.3.为正规式(a|b) *a(a|b)构造一个确定的有限自动机。
4.设文法G(S):S→(L)|a S|aL→L,S|S(1) 消除左递归和回溯;(2) 计算每个非终结符的FIRST和FOLLOW;(3) 构造预测分析表。
(完整版)编译原理习题及答案(整理后)
8、规范推导是最左推导,故选 d。
9、由 T→T,…和 T→(… 得 FIRSTVT(T))={(,,)};
由 T→S 得 FIRSTVT(S)⊂FIRSTVT(T),而 FIRSTVT(S)={b,∧,(};即
FIRSTVT(T)={b,∧,(,,};
因此选 c。
10、d 11、c 12、b 13、b 14、b
标语言
第二章
一、单项选择题
1、文法 G:S→xSx|y 所识别的语言是 。
a. xyx
b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法 G 描述的语言 L(G)是指 。
a. L(G)={α|S⇒+ α , α∈VT*}
b. L(G)={α|S⇒* α, α∈VT*}
c. L(G)={α|S⇒* α,α∈(VT∪VN*)} d. L(G)={α|S⇒+ α, α∈(VT∪VN*)}
6、一个文法所有句型的集合形成该文法所能接受的语言。
五、简答题
1、句柄 2、素短语
3、语法树
4、归约
六、问答题
1、给出上下文无关文法的定义。
2、文法 G[S]:
() () () () ()
5、推导
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc (1)它是 Chomsky 哪一型文法? (2)它生成的语言是什么? 3、按指定类型,给出语言的文法。 L={aibj|j>i≥1}的上下文无关文法。 4、有文法 G:S→aAcB|Bd
a. 23 B. 42 c. 30 14、规范归约指 。
d. 17
a. 最左推导的逆过程
b. 最右推导的逆过程
1999年编译原理试题
1999年编译原理试题1.(10分)将下面的DFA 化成最简形式。
2.(5分)为什么LR 分析在访问转移表时决不会进入出错条目。
3.(15分)为语言L = { w | w (a | b )*并且在w 的任何前缀中,a 的个数不少于b 的个数 写一个LR (1)文法,不准超过6个产生式。
(若超过6个产生式,不给分。
若所写文法不是LR (1)文法,最多给5分。
)4.(20分)程序的文法如下:P DD D ; D | id : T | proc id ; D ; S(1)写一个语法制导定义,打印该程序一共声明了多少个id 。
(2)写一个翻译方案,打印该程序每个变量id 的嵌套深度。
5.(10分)按P 127图4.21的方式,给出图4.18中非终结符T 的函数。
6.(5分)一个C 语言程序如下:typedef struct _a{char c1;long i;char c2;double f ;}a;typedef struct _b{char c1;char c2;long i;double f ;}b;main(){printf("Size of double, long, char = %d, %d, %d\n",sizeof(double),sizeof(long),sizeof(char));printf("Size of a, b = %d,%d\n",sizeof(a),sizeof(b)); }该程序在SUN 工作站上的运行结果如下:Size of double, long, char = 8, 4, 1Size of a, b = 24,16结构类型a 和b 的域都一样,仅次序不同,为什么它们需要的存储空间不一a,b样。
7.(15分)一个C语言函数如下:func(i)long i;{long j;j=i-1;func(j);}该函数在PC机linux操作系统上编译生成的汇编代码如下:.file "stack.c"gcc2_compiled.:__gnu_compiled_c:.text.align 2.globl _func.type _func,@function_func:pushl %ebpmovl %esp,%ebpsubl $4,%espmovl 8(%ebp),%edxdecl %edxmovl %edx, -4(%ebp)movl -4(%ebp),%eaxpushl %eaxcall _funcaddl $4,%espL1:leaveretLfe1:.size _func,Lfe1-_func试画出该函数的一个活动记录的内容,包括活动记录的每个单元存放什么东西、执行movl 8(%ebp),%edx指令时栈顶指针所指的的位置、与活动记录有关的另一个指针所指的位置和地址增长方向。
编译原理试题及答案
编译原理试题及答案编译原理是计算机科学中的重要基础课程,涉及到编程语言的设计、编译器的构建等内容。
为了帮助大家更好地掌握编译原理的知识,我整理了一些编译原理试题及答案,希望能够对大家的学习有所帮助。
1. 什么是编译原理?简要说明其作用和意义。
编译原理是研究如何将高级语言程序翻译成目标代码的一门学科。
它的作用和意义在于帮助人们理解程序设计语言的语法和语义,掌握程序设计语言的翻译方法和技术,从而更好地进行程序设计和编程工作。
2. 请简要描述编译器的基本工作原理。
编译器的基本工作原理包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等步骤。
其中,词法分析将源程序转换成单词流,语法分析将单词流转换成语法树,语义分析对语法树进行语义检查,中间代码生成将语法树转换成中间代码,代码优化对中间代码进行优化,目标代码生成将优化后的中间代码转换成目标代码。
3. 什么是文法?简要说明文法的分类及其特点。
文法是用于描述编程语言语法结构的形式化工具。
文法可以分为上下文无关文法和上下文相关文法两种,其中上下文无关文法的特点是产生式左部只能是一个非终结符,上下文相关文法的特点是产生式左部可以是一个非终结符和一个终结符的串。
4. 请简要说明语法分析的两种基本方法及其区别。
语法分析的两种基本方法是自顶向下分析和自底向上分析。
自顶向下分析是从文法的开始符号出发,采用推导或归纳的方法,逐步构造出推导树或语法树;自底向上分析是从输入串出发,采用规约或移进的方法,逐步构造出推导树或语法树。
5. 请简要说明语义分析的主要任务及其实现方法。
语义分析的主要任务是对源程序进行语义检查,确保程序具有正确的含义。
语义分析的实现方法包括类型检查、作用域检查、中间代码生成等步骤,其中类型检查用于检查表达式的类型是否匹配,作用域检查用于检查标识符的作用域是否正确,中间代码生成用于将语法树转换成中间代码表示形式。
以上就是我整理的编译原理试题及答案,希望对大家的学习有所帮助。
四川大学编译原理历年期末考试真题
4. 文法如下:(10分)
exp exp and exp | exp or exp | not exp | (exp) | TRUE|FALSE
(1) 此文法是否为二义文法?为什么? (2) 试将文法改写为非二义文法,要求运算符优先级由低到高分别是or、and 、not,且and和or是左结合的,not是右结合的。
(1) 消除文法左递归,提左因子; (2) 为所得文法的每个非终结符构造First集和Follow集; (3) 所得文法是LL(1)文法吗?为什么? (4) 构造所得文法的LL(1)分析表。
7. LR(k)分析题(25分) 文法如下:
declaration type var list
type int|float var list id, var list |id
3. 文法如下:(8分)
exp exp addop term | term
addop +|term term mulop factor | factor
mulop * factor ( exp )|number
(1) 给出句子 (8 5) * 3 的最左推导; (2) 构造(1)中句子的抽象语法树。
5. DFA构造题(20分) 已知正规表达式 (a | bc)* b (1) 使用Thompson构造方法构造对应的NFA; (2) 用子集构造法将得到的NFA确定化为DFA; (3) 将得到的DFA最小化。
6. LL(1)分析题(20分) 文法如下:
A Pa P b P a|b Q b
Q Q a|a
四川大学期末考试试题 (闭卷)
(2010-2011学年第2学期) 1. 简答题 (12分) (1) 编译器的前端和后端分别包括哪几个阶段?前后端分开有什么好处? (2) 解释器和编译器有什么本质区别? (3) 词法分析和语法分析的功能分别是什么? (4) 分析树与抽象语法树有什么不同? 2. 已知字母表 {a, b, c} ,定义在 上的语言L具有以下特征:(5分) (1) 若出现a,则其后至少紧跟两个c; (2) 若出现b,则其后至少紧跟一个c。 试给出可以产生语言L的正规表达式。
中科院计算机技术研究所1999年硕士生入学试题编译原理与操作系统
中科院计算机技术研究所1999年硕士生入学试题编译原理与操作系统一.(15分)有表达式如下:A+B*(C-D)**N (**为幂乘)(1)给出该表达式的逆波兰式表示(后缀式);(2)给出上述表达式的四元式和三元式序列.二.(15分)有C程序如下:main(){printf("%d,%d,%d\n",10);}(1)试着写出上述printf语句输出的结果;(2)从运行环境和printf的实现分析为什么会有这样的输出结果.三.(5分)构造一个DFA(确定的有限自动机),使之接受含偶数个"1"的0,1串集.四.(5分)有文法G,其产生式如下:S->S(S),S->ε/*空产生式*/试写出一个语法制导定义,它输出配对的括号个数.五.(10分)已知某语言L={a^(m)b^(n)|n>m>=0}.试写出产生该语言的两个文法G1和G2,其中G1是LR(1)文法,G2是非LR(1)和非二义性文法.六.填空(每空一分,共20分)1.现代操作系统的两个最基本的特征是___和___.2.进程控制块的初始化工作包括___,___和___.3.在操作系统中引入线程概念的主要目的是___.4.unix系统v中,系统向用户提供的用于创建新进程的系统调用是___;用于建立无名管道的系统调用是___;用于创建有名管道的系统调用是___.5.unix系统v中,引起进程调度的原因有___,___,___和___等.6.在分区分配算法中,首次适应算法倾向于优先利用内存中___部分的空闲分区,从而保留了___部分的大空闲区.7.进行设备分配时所需的数据表格主要有___,___,___和___等.8.利用符号链实现文件共享时,对文件主删除了共享文件后造成的指针悬空问题,解决的方法是___.七.(8分)在消息传递通信方式下,A.发送进程和接收进程在通信过程中可以采用那三种同步方式?B.试以下面给出的发送进程和接收进程(将接收到的数据存入S)为例,说明当接收进程执行到标号为L2的语句时,采用这三种同步方式,X的值可能各是多少?发送进程P: 接收进程Q:M=10;L1: send M to Q; L1: receive S from P;L2: M=20; L2: X:=S+1;goto L1;八.(8分)一系统具有150个存储单元,在T0时刻按下表所示分配给3个进程:进程Maximum demand Current allocationP1 70 25P2 6040P3 6045对下列请求应用银行家算法分析判定是否是安全的:A.第4个进程P4到达,最大需求60个存储单元,当前请求分配25个单元.B.第4个进程P4到达,最大需求50个存储单元,当前请求分配35个单元.如果是安全的请给出一个可能的进程安全执行序列.如果是不安全的,请说明原因.九、(14分)设正在处理器上执行的一个进程的页表如下.页表的虚页号和物理块号是十进制数,起始页号(块号)均为0.所有的地址均是存储器字节地址,页的大小为1024字节.A.详述在设有快表的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程.B.下列虚地址对应与什么物理地址: (1)5499; (2) 2221;虚页号状态位访问位修改位物理块号0 1 10 4111 1 72000---3 1 00 24 0 00---5 1 0 1 0注释:访问位---当某页被访问时,其访问位被置为1.中科院计算机技术研究所1999年硕士生入学试题编译原理与操作系统参考答案一.(1)后缀式:ABCD-*+ECD-N**/+(2)四元式三元式(1)( - , C , D , t1) (1)( - , C , D )(2)( * , B , t1, t2) (2)( * , B ,(1))(3)( +, A , t2, t3) (3)( +, A ,(2))(4)( - , C , D, t4) (4)( - , C , D )(5)(**, t4, N , t5) (5)(**, (4), N)(6)( / , E , t5, t6) (6)( / ,E ,(5))(7)( +, t3, t6, t7) (7)( +,(3),(6))二.(1)(5分)输出结果: 10,X,Y 其中X,Y是随机整数值(2)(10分)从活动记录内容安排看,在运行栈中,调用者的活动记录在被调用者的下面,如图:其中参数域和可能有的返回值放在紧靠调用者活动记录的地方.这样的好处是,对调用者来说无须了解被调用者的局部数据或临时量,做到信息隐藏.另一好处是,可以处理变元个数可变的过程,如printf.从printf实现看,C语言中的printf函数,他的第一个变元指出了其余参数的性质,所以一旦printf能够确定第一个变元位置,他就能找到其余变元.C的参数是逆序计算和进栈的,这样就保证了被调用者能知道第一个变元的位置.在所给例子中,main函数调用printf时仅压入两个参数到栈中,而第一个参数中指示要显示三个整数值,但仅给出(压入栈(一个有效值).所以出现上述结果.三.(5分)四.(5分)为符号S引入综合属性h,语法制导定义如下:产生式语义规则S->S1(S2) S.h:=S1.h+S2.h+1S->εS.h:=0S'->S print(S.h)/*输出其配对括号数*/五.(10分)G1:LR(1)文法G2:非LR(1),非二义性文法S->A,B S->aSb|BA->aAb|εB->Bb|bB->Bb|b六.填空1.并发,共享2.初始化标识符信息,初始化处理机状态信息,初始化处理机控制信息;3.为了减少程序并发执行时所需付出的时空开销,提高程序执行的并发度;4.fork pipe mknod5.正在执行的进程时间片完; 正在执行的进程执行了sleep系统调用; 正在执行的进程执行了exit系统调用; 正在执行的进程在用户态运行时有优先级更高的进程进入就绪队列6.中低地址, 高地址7.设备控制表, 控制器控制表, 通道控制表, 系统设备表8.只让文件主拥有指向该文件索引结点的指针,而共享该文件的其他用户只有该文件的路径明而不是指向索引结点的指针.七.在消息传递通信方式下:A三种同步方式分别为:1.发送进程和接收进程均阻塞(即同步的发送和接收)2.发送进程不阻塞,接收进程阻塞(即阻塞的发送和接收)3.发送进程和接收进程均不阻塞(即无阻塞的发送和接收)B.同步的发送和接收方式下:X=11;阻塞的发送和接收方式下:X=11;无阻塞的发送和接收,X=11,或21,或-99.八.应用银行家算法A.安全,存在至少一个进程安全执行队列:P3,P2,P1,P4.(只要P3排第一均可)B.不安全.因为系统在满足了P4的资源请求后,已不满足安全性.九.A.在设有快表的请求分页系统中地址变换机构在进行地址变换时,(1)首先检索快表,试图找到所要访问的页.若找到,便修改页表中的访问位.对于写指令,还需将修改位置成"1",然后利用页表项中给出的物理块号和页内地址(偏移址), 形成物理地址.(2)如果在快表中未找到该页的页表项,则应再到内存中查找页表,再从找到的页表项的状态位来了解该页是否已调入内存,其结果可能是:(1)该页已调入内存,这时应将该页的页表写入快表,当快表已满时,应先调出按某种算法确定的页的页表项,然后再写入该页的页表项.然后再执行如(1)所述的地址变换过程.(2)该页尚未调入内存,便要产生缺页中断,请求操作系统从外存将所缺之页调入内存.操作系统的缺页中断机构从外存中找到所缺的页后,判断内存是否已满.若否,则从外存调入所缺的页;若是,还要先调用页面置换算法从内存中换出一页,再从外存调入所缺的页.在做页面置换时,若将被换出的页的修改位置为"1",说明已被修改过,则要将该页写回内存,然后执行(1)所述的地址变换过程.B.虚地址(虚页号,页内地址) 物理地址(物理块号,块内地址)2221=1024*2+173 (2,173) (不在内存)5499=1024*5+379 (5,379) (0,379)。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是将高级语言源程序转换成机器语言目标程序。
(对/错)答案:对2. 编译过程中,词法分析器的主要任务是识别源程序中的各种词法单位。
(对/错)答案:对3. 在语法分析阶段,编译器使用的数据结构是栈。
(对/错)答案:错4. 语义分析的主要目的是检查程序的语法结构是否正确。
(对/错)答案:错5. 编译器的优化阶段可以提高目标程序的执行效率。
(对/错)答案:对6. 编译器的代码生成阶段负责将中间代码转换为目标代码。
(对/错)答案:对7. 编译器的运行时系统包括内存管理、输入输出处理等功能。
(对/错)答案:对8. 编译器的前端主要负责源程序的分析,后端负责目标代码的生成。
(对/错)答案:对9. 编译器的词法分析阶段不涉及对标识符的识别。
(对/错)答案:错10. 编译器的语法分析阶段可以识别出所有的语法错误。
(对/错)答案:对二、填空题(每题2分,共20分)1. 编译器在进行语法分析时,通常采用________算法。
答案:LL(1)或LR(1)2. 编译器在语义分析阶段,需要对变量的________进行检查。
答案:作用域和生命周期3. 编译器在代码优化阶段,常用的优化技术包括________和循环优化。
答案:常量传播4. 编译器在目标代码生成阶段,需要考虑________的约束。
答案:目标机器5. 编译器的运行时系统包括________、内存管理、输入输出处理等。
答案:程序启动和异常处理6. 编译器在词法分析阶段,需要识别的词法单位包括________、标识符、常量等。
答案:关键字7. 编译器在语法分析阶段,使用的分析表可以是________表或ACTION 表。
答案:GOTO8. 编译器在语义分析阶段,需要对表达式的________进行计算。
答案:类型9. 编译器的代码生成阶段,需要将中间代码转换为________代码。
答案:目标机器10. 编译器的运行时系统在内存管理中,需要处理________和垃圾收集。
《编译原理》考试试题及答案(汇总)
《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应。
(√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定。
(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。
(× )10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。
A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
四川大学(软件)操作系统简答题
From the perspective of design, what are the main modules inside the OS kernel? Andgive a short description of each of them.从设计的角度来看,操作系统内核中的主要模块是什么?对每一项做一个简短的描述答案:包括进程管理(调度)模块、文件管理模块、设备管理模块、存储管理模块、网络模块(以下非教材内找到,仅供参考)进程管理模块:当多个程序同时运行时,解决处理器(CPU)时间的分配问题。
文件管理模块:主要负责文件的存储、检索、共享和保护,为用户提供文件操作的方便设备管理模块:根据用户提出使用设备的请求进行设备分配,同时还能随时接收设备的请求(称为中断),如要求输入信息。
存储管理模块:为各个程序及其使用的数据分配存储空间,并保证它们互不干扰。
网络模块:提供对多种网络通信标准的访问并支持许多网络硬件(以下为教材内容)操作系统内核的典型功能:进程管理:进程的创建和终止;进程的调度和分派;进程切换;进程同步以及对进程间通信的支持;进程控制块的管理内存管理:给进程分配地址空间;交换;页和段的管理I/O管理:缓冲区管理;给进程分配I/O通道和设备支持功能:中断处理;记账;监视How a child process is created by call the system call (E.g. fork( ) in Linux or CreateProcess() in Windows). Give a description of the process.如何通过调用系统调用来创建子进程答案:一般步骤:1.给新进程分配一个唯一的进程标识号。
2.给进程分配空间。
3.初始化进程控制块。
4.设置正确的连接。
5.创建或扩充其他的数据结构。
Linux下,通过系统调用创建的步骤:使用fock()函数,1.为最新进程在进程表中分配一个空项2.为子进程赋一个唯一的进程标识符3.生成一个父进程上下文的逻辑副本,不包括共享内存区4.增加父进程拥有的所有文件的计数器,以表示有一个另外的进程现在也拥有这些文件5.把子进程设为就绪态6.向父进程返回子进程的进程号,对子进程返回零List advantages of ULTs over KLTs and disadvantages of ULTs compared to KLTs.列出对于内核级线程来说,用户级线程的优势与劣势答案:以下为教材课后习题答案列出用户级线程优于内核级线程的三个优点。
编译原理习题集与答案解析(整理后)
编译原理习题集与答案解析(整理后)第⼀章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、编译程序各阶段的⼯作都涉及到。
a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序⼯作时,通常有阶段。
a.词法分析b.语法分析c.中间代码⽣成d.语义检查e.⽬标代码⽣成三、填空题1、解释程序和编译程序的区别在于。
2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和⽬标代码⽣成。
3、编译程序⼯作过程中,第⼀段输⼊是,最后阶段的输出为程序。
4、编译程序是指将程序翻译成程序的程序。
单选解答1、将编译程序分成若⼲个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、⽬标语⾔及编译⽅法等三⽅⾯的知识,故选d。
3、对编译⽽⾔,变量既持有左值⼜持有右值,故选c。
4、编译程序打交道最多的就是各种表格,因此选d。
《编译原理》考试试题及答案(汇总)
编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划",错误的划X)(每个2分,共20分)1 .编译程序是对高级语言程序的解释执行。
(x )2. —个有限状态自动机中,有且仅有一个唯一的终态。
(X)3. —个算符优先文法可能不存在算符优先函数与之对应。
(V )4. 语法分析时必须先消除文法中的左递归。
(x)5. 分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
( V)6. 逆波兰表示法表示表达式时无须使用括号。
(V )7. 静态数组的存储空间可以在编译时确定。
(x)8. 进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
( x)9. 两个正规集相等的必要条件是他们对应的正规式等价。
(x)(x )10. 一个语义子程序描述了一个文法所对应的翻译工作、选择题 ( 请在前括号内选择最确切的一项作为答案划一个勾, 多划按错4.如果文法G 是无二义的,则它的任何句子aA. ( ) 最左推导和最右推导对应的语法树必定相同B. ( ) 最左推导和最右推导对应的语法树可能不同C. ( ) 最左推导和最右推导必定相同论)( 每个 4 分,共 40分) 1.词法分析器的输出结果是。
A .( ) 单词的种别编码C .( ) 单词的种别编码和自身值 2. 正规式 M 1 和 M 2 等价是指。
A. ( ) M1和M2的状态数相等 的有向边条数相等C. ( ) M1和M2所识别的语言集相等 向边条数相等3. 文法G S f 所识别的语言是。
A. ( )B . ( ) ()*C . ( ) (nB. ( ) 单词在符号表中的位置 D . ( ) 单词自身值B . ( ) M1 和 M2D. ( ) M1 和M2状态数和有> 0) D . ( ) x**D. ( ) 可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握6.四元式之间的联系是通过实现的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川大学1998年研究生入学考试编译原理与操作系统
考试科目:编译原理与操作系统
科目代号:70
试题适用专业:计算机软件
一.构造正规(a,abb)的相应DFA。
(15分)
二.已知文法:(26分)
G:Z--- Azjb
A- Zaja
1.证明aaaabbbbababab 是文法G的句子
2.画出 aaaabbbbababab 所对应的语法树。
3.将文法G拓广为G',并求出G'所非终结符的Follow.(4分)
4.列出拓广文法G'的所有LR(0)项目。
5.构造出拓广文法G' 的LR(0) 项目集族及GO函数。
(9 分)
6.该文法是`SLR 文法吗?若是则构造出其 SLR 分析表,否则说明不是
SLR文法的理由。
(3分)
三.将下列表达式表示成后缀式。
(8分)
1. Y=((a+b+c)/(-a*d/e))/(f-k*t)
2.(A∧B∨C)∧(C∨D∧E∨F)∨G∨(P∨Q)
四.已知语言 L(G)={a b c d |n≥1,i≥0},试构造出产生该语言的文法。
(6分)五.指出以下各组概念是否有区别,有何区别(10分)
(1)进程,程序,作业
(2)临界资源,共享资源
(3)地址空间,存储空间
(4)预防死锁,避免死锁
(5)分时系统,实时系统,多道系统
六.简要论述操作系统的虚拟特征。
(6分)
七.有一计算机系统利用位示图来管理磁盘文件空间。
假定该磁盘组共有100
每个柱面上个柱面有20个磁道,每个盘面分成8个扇块(扇区),每个盘
快1k字节,位示图如下:(10分)。