ImageVerifierCode 换一换
格式:DOCX , 页数:109 ,大小:129KB ,
资源ID:7265790      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7265790.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理试题集78677.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理试题集78677.docx

1、编译原理试题集78677第一章 引论一.填空题1. 对编译程序而言,输入数据是_;输出数据是_。2. 编译后端通常不依赖于源语言而仅仅依赖于_。3. 如果不需改写编译程序中与机器无关的部分就可以把编译程序移植到另外一个目标机上,则称该编译程序是_。4. 描述程序设计语言词法的有效工具是_。5. 编译过程的每一个阶段都能检测出错误,其中,绝大多数错误在_阶段检测出来的。6. 编译过程的每一个阶段都能检测出错误,其中,绝大多数错误在_阶段检测出来的。7. 为了使编译后的Java程序从一个平台移到另外一个平台上执行,Java定义了一种称为ByteCode的虚拟机代码。只要实际使用的操作平台上实现了执

2、行ByteCode的Java解释器,这个操作平台就可以执行各种Java程序。这就是所谓Java语言的_。8. 在一个程序设计环境中,_起着中心作用。连接程序、调试程序、程序分析等工具的工作直接依赖于它所产生的结果。解答:1.2.3.4.5.6.7.8.二.判断题1. 在编译过程中,既可以将几个不同的阶段合为一遍,也可以把一个阶段的工作分为若干遍。( )2. 编译程序生成的目标程序都是可执行的程序。( )3. 编译前端主要由与源语言和目标机相关的那些部分组成。( )4. 优化的任务在于对前端编译所产生的中间代码进行加工和变换,以其能产生运行结果更为准确的目标代码。( )5. 支持程序设计人员进行

3、程序计开发的工具,除了编译程序以外,还需要编辑程序、链接程序和调试程序等其他一些工具。( )6. 汇编器将高级语言程序翻译成汇编语言程序。( )7. 许多编译程序在识别出语法单位后并不真正构造语法树。( )8. 取编译程序前端改写其后端以生成不同机器上的目标代码,目前技术上还难以实现。( )解答:1. 2. 3. 4. 5. 6. 7.8.三.单项选择题1. 如果一个编译程序能产生不同于其宿主机的机器代码,则称它为:_ 。 a. 诊断编译程序b. 优化编译程序 c. 交叉编译程序 d. 可变目标编译程序 2. 编译程序将高级语言程序翻译成_ 。 a. 机器语言程序或高级语言程序 b. 汇编语言

4、或机器语言程序 c. 汇编语言程序或高级语言程序 d. 中间语言程序或高级语言程序 3. 下面的四个选项中,_不是编译程序的组成部分。 a. 词法分析程序 b. 代码生成程序 c. 设备管理程序 d. 语法分析程序 4. 现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个_把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。 a. 重定位程序; b. 解释程序;c. 连接装配程序;d. 诊断程序; 5. 从编译程序的角度说,源程序中的错误通常分为_两大类。 a.

5、词法错误和语法错误; b. 语法错误和语义错误; c. 编辑错误和诊断错误; d. 词法错误和语义错误; 6. 下面对编译原理的有关概念正确描述的是:_。 a. 目标语言只能是机器语言 b. 编译程序处理的对象是源语言。 c. Lex是语法分析自动生成器 d. 解释程序属于编译程序 7. 目标代码生成阶段所生成的目标代码的形式不可能是_。 a. 绝对指令代码 b. 可充定位的指令代码。 c. 汇编指令代码 d. 三地址代码 8. 语义错误是指源程序中不符合语义规则的错误,不包括:_ a. 非法字符错误 b. 类型不一致错误。 c. 作用域错误 d. 说明错误 解答:1.2.3.4.5.6.7.

6、8.四.名词解释1. 诊断编译程序、优化编译程序;2. 交叉编译程序、可变目标编译程序;3. 编译程序的“遍”4. 程序设计环境解答:1. 诊断编译程序:专门用于帮助程序开发和调试的编译程序。 优化编译程序:着重于提高目标代码效率的编译程序。 2. 交叉编译程序:能产生不同于其宿主机的机器代码的编译程序。 可变目标编译程序:不需重写编译程序中与机器无关的部分就能改变目标机的编译程序。 3. 编译程序的“遍”:就是对源程序或者中间结果从头到尾的一次扫描,并做有关的加工处理,生成新的中间结果或者目标程序。4. 程序设计环境:支持程序设计人员进行程序设计开发所需要的如编辑程序、编译程序、连接程序和调

7、试程序等软件工具,一起构成程序设计环境。五.简答题1. 什么是编译程序的“遍”?2. 什么编译程序、解释程序?编译程序和解释程序有什么区别?3. 前端编译和后端编译是如何划分的?4. 什么是标识符,什么是名字,它们的区别是什么?5. 如果机器A上已有一个用A机器代码实现的某高级语言L1的编译程序,则可以用L1编写另一种高级语言L2的编译程序,画出这个实现过程的T形图表示。6. 如何采用“移植”的办法,利用A机器上已有的高级语言L编写能够在B机器上运行的高级语言L的编译程序?画出T形图表示。解答:1. 编译程序的“遍”,就是对源程序或者中间结果从头到尾的一次扫描,并做有关的加工处理,生成新的中间

8、结果或者目标程序。 既可以将几个不同阶段合为一遍,也可以把一个阶段的工作分为若干遍。当一遍中包含若干阶段时,各阶段的工作是穿插进行的。 一个编译程序究竟应分为几遍、如何划分,是与源语言、设计要求、硬件设备等诸因素有关的,难以统一规定。 2. 编译程序:把某一种高级语言源程序转换成汇编语言程序或机器语言程序的程序。 解释程序:对高级语言源程序并不生成汇编程序或机器语言程序,而是边解释边执行的程序。 编译程序把源语言程序翻译成目标代码,然后由操作系统加载执行;而解释程序则是边翻译边执行,不生成目标代码。 3. 前端编译和后端编译是如何划分的? 根据编译器的工作是与源语言相关还是目标机器有关来进行划

9、分。 编译前端:编译程序中包括词法分析、语法分析、语义分析和中间代码产生等主要与源语言程序有关但与目标机无关的那些部分叫编译前端。 编译后端:编译程序中包括目标代码生成、目标代码优化等与目标机有关而与源语言无关的那些部分部分叫编译后端。 4. 标识符是由字母或数字以及某些特殊符号(因不同的高级语言而不同)组成的,但是必须以字母开头的一个字符串。 当给某标识符以确切的含义时,这个标识符就叫做名字。程序语言中的各种名字都是用标识符表示的。 名字和标识符具有相同的形式,名字使用标识符来描述,但标识符是没有意义的字符序列,而名字却有确切的意义和属性(即类型和作用域)。 5. 6.六.应用题解答:第二章

10、 高级语言及其语法描述一.填空题1. 假设G是一个文法,?是由终结符和非终结符组成的串,S是文法的开始符号,如果S=*,则称是_。2. 在赋值语句中,赋值号:=左右两边的变量名扮演着两种不同的角色,为了区分一个名字的这两种特征,我们把一个名字所代表的_称为该名的左值,把一个名字的_ 称为该名字的右值。3. 对于文法G,仅含终结符号的句型称为_。4. 设有文法GS,其部分产生式: SS;T ST Tif E then S TV:=E TA 则VN = ,VT= 。 5. 由文法产生的_集合是文法产生的语言。6. Chomsky语法定义的3型文法又可以分为_。7. 一个上下文文法G的四个组成部分分

11、别是:_。8. 已知语言:anbnambm|n,m0,其语法定义为:G=(a,b,S,A,B,S,P),其中P为: _ 。9. 已知某语言的语法定义为:G=(1,0,S,A,S,P),且P:S1A0|A|?;A0A1|,则该语言为_。10. 已知某语言为?wcwR|?a,b*,其语法定义为G=(a,b,c,S,S,P), 其中P为:_ 。11. 所谓最右推导是指_。12. 已知文法G(Z): EET+|T TTF*|F FFP|P PE|i 试写出其识别的一个句子:_。 13. 文法GS:SaA|a, AaS为_ 型文法,其确定的语言的为:_ 。14. 在一棵语法树生长过程中的任何时刻,_ 就

12、是一个句型。15. 我们说G=(VT,VN,S,P)是一个0型文法,如果它的每一个产生式是这样一种结构: _ 。解答:1. 句型;2. 单元的地址(或者:单元、存储单元的地址),值(或者:单元的内容)3.4.5.6.7.8.9.10.11.12.13.14.15.二.判断题1. 一棵语法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。 ( )2. 可能有两个不同的文法G和G“,期中一个是二义的而另一个是无二义的,但是却有L(G)L(G“)。( )3. 变量既持有左值又持有右值,而常数和带有算符的表达式一般认为只持有右值。( )4. 文法G: SbA AaA|a 定义的语言是所有以b

13、开头的后跟至少一个a的字符串的集合。( ) 5. 设有文法G: SS*S | S+S | (S) | a 该文法是二义的。( ) 6. 正则文法一定不是二义的。( )7. 上下文无关文法可以产生语言L= anbnci | i=1,n=1 。( )8. 不存在任何正规文法能产生语言L=anbn | n=1。( )9. 对于每一个左线性文法G1,都存在一个右线性文法G2,使得L(G1)=L(G2)。( )10. 正规文法产生的语言都可以用上下文无关文法来描述。( )11. 上下文无关文法比正规文法有更强的描述能力。( )12. 文法的二义性和语言的二义性在概念上是相同的,也就是说,对于某个语言,不

14、可能存在两个以上的文法来描述它。( )13. 二义性是可以判定的,也就是说,可以编这么一个程序,输入该文法后,该程序能确切地给出该文法是否二义的答案。( )14. 说明语句旨在定义名字的性质。编译程序把这些性质登记在符号表中,并检查程序中名字的引用和说明是否一致。实际上,许多说明语句并不能翻译成相应的目标代码。( )15. C语言是一个允许子程序嵌套定义的语言。( )解答:1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.三.单项选择题1. Chomsky把文法分成四种类型,0型、1型、2型和3型。3型文法也称为_,2型文法也称为_ 。 a.上下文无关文法 b.上下文相关

15、文法 c.正则文法 d.短语文法 2. 许多广为使用的语言,如Fortran、C、Pascal等,属于_。 a. 强制式语言 b. 应用式语言 c. 基于规则的语言 d. 面向对象的语言 3. 设G是一个文法,S是开始符号。若S*,(VTVN)*,则称是一个_ 。 a. 句子 b. 句型 c. 推导 d. 语言 4. 一个数据类型通常包括的三种要素中,没有下面的_。 a. 用于区别这种类型的数据对象的属性;b. 这种类型的数据对象可以具有的值; c. 对这种类型的数据对象的内存分配;d. 可以作用于这种类型的数据对象的操作; 5. Chomsky把文法分成四种类型,其中,_也称正规文法 a.

16、0型 b. 1型 c. 2型 d. 3型 6. 语言的词法规则一般用Chomsky的_ 型文法来描述: a. 0 b. 1 c. 2 d. 3 7. 文法 S(L)|a LL,S|S 中,下面 是该文法中的终结符号。 a. S b. , c. L d. | 8. 文法G所描述的语言是_ 的集合。 a. 文法G的字母表?中的所有符号组成的符号串; b. 文法G的字母表?的闭包?*中的所有符号串; c. 文法G的识别符号推出的所有符号串; d. 文法G的识别符号推出的所有终结符号串; 9. 语言L=c | (a|b)*,该语言是_语言。 a. 3型语言,b. 2型语言,c. 1型语言,d. 0型语

17、言 10. 设有文法G: II1 | I0 | Ia | Ic | a | b | c | 下面符号串中不是该文法的句子是: a. ab0, b. a0c01, c. aaa, d. bc10 11. 给定文法AbA|cc,下面的符号串中,是该文法句子的是_。 a. bcbc, b. bbbcc, c. bcbcc, d. bccbcc; 12. Chomsky定义的四种形式语言文法中,2型文法可由_识别。 a. 图灵机;b. 确定性有限自动机;c. 下推自动机;d. 非确定性有限自动机; 13. 若文法G定义的语言是无限集,则文法必然是_。 a. 上下文无关的 b. 递归的 c. 二义性的

18、d. 无二义性的 14. 文法 SaaS|abc 定义的语言是_。 a. a2kbc|k0 b. akbc|k0 c. a2k-1bc|k0 d. akakbc|k0 15. 文法:G:SxSx | y所识别的语言是_。 a. xyx b. (xyx)* c. x*yx* d. xnyxn(n0) 解答:1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.四.名词解释1. 二义性文法;2. 推导和直接推导;3. 句型,句子和语言;4. 上下文无关文法;5. 语法;6. 正规文法(左线性文法和右线性文法);解答:1.2.3.4.5.6.五.简答题1. 作为描述程序语言的上下文

19、无关文法,对它有哪些限制?2. 什么是二义性文法?从输入串abab来说明下面文法二义吗? SaSbS|bSaS| 该文法产生的语言是什么? 3. 文法 GS为: SAc|aB Aab Bbc 该文法是否为二义的?为什么? 4. 已知文法G=(A,B,C,a,b,c,P,A), P由以下产生式组成: Aabc AaBbc BbbB BcCbcc bCCb aCaaB aCaa 此文法所表示的语言是什么? 5. 已知文法GZ: Z0U|1V U1Z|1 V0Z|0 (1)请写出此文法描述的只含有个符号的全部句子。 (2)GZ产生的语言是什么? (3)该文法在Chomsky文法分类中属于几型文法?

20、解答:1.2.3.4.5.六.应用题1. 试分析下面给出的if-then-else语句的文法,它的提出原本是为了矫正dangling-else(else悬挂)文法的二义性: stmt if expr then stmt | matched-stmt matched-stmt if expr then matched-stmt else stmt | other expre 考虑句子if e then if e then other else if e then other else other,试说明此文法仍然是二义性的。 2. 考虑文法Gbexpr: bexprbexpr or bterm

21、| bterm btermbterm and bfactor | bfactor bfactornot bfactor| ( bexpr ) | true | false (a) 请指出此文法的终结符号、非终结符号和开始符号。 (b) 试对于句子not(true or false)构造一棵分析树。 (c) 试说明此文法所产生的语言是全体布尔表达式。 3. 已知文法GS,其产生式为:S(S)| ? (a)L(G)是什么? (b)对于(a)的结果,请给出证明。 4. 试构造生成下列语言的上下文无关文法: (1) anbnci | n1, i0 (2) w | wa,b+,且w中a的个数恰好比b多1

22、 (3) w | wa,b+,且|a|b|2|a| (4) w | w是不以0开始的奇数集 5. 已知文法GS: SAB AaA|a BbB|b 求该文法所定义的语言。 6. 考虑下面上下文无关文法GS: SSS*|SS+|a (1) 对于符号串aa+a*分别给出最左推导和最右推导过程,并为该串构造语法树。 (2)GS的语言是什么? 7. 令文法G为 N D | ND D 0 | 1 | 2 | 3 | 4 | 5 | 6| 7 | 8 | 9 (1) G的语言L(G)是什么? (2) 给出句子0127、34和568的最左推导和最右推导。 8. 写一个文法,使其语言是奇数集,且每个奇数不以0开

23、头。9. 写一个上下文无关文法CFG,使其语言是能被5整除且不以0开头的无符号整数的集合。(如5,10,15,.)10. 证明下面的文法是二义的: SSS |S | 11. 某程序设计语言的表达式由运算符1、2、3、标识符、(、)组成,其中1和2的优先级相同,3的优先级低于1、2的优先级,优先级相同的运算符从右往左计算,可以用括号改变运算的顺序,则下述四种文法中哪一个可以描述上述的表达式文法? 设E为识别符号,终结符号集=1、2、3、(、)、I,非终结符号集=E、T、F。 a. ET|E1T|E2T TF|T3F F(E)|I b. ET|T1E|T2E TF|F3T F(E)|I c. ET

24、|E3T TF|T1F|T2F F(E)|I d. ET|T3 E TF|F1T|F2T F(E)|I 解答:1.2.3.4.5.6.7.8.9.10.11.第三章 词法分析一.填空题1. 词法分析器对扫描缓冲区进行扫描时一般用两个指示器,一个_;另一个_。 ;_;2. 一个确定性有限自动机DFA M的化简是指:寻找一个状态数比M少的DFA M,使得_。3. 词法分析器所的输出常表示成如下形式的二元式:(_,_)。4. 一个状态转换图只包含有限个状态,其中有一个被认为是_,而且实际上至少有一个_。5. 把状态转换图用程序实现时,对于含有回路的状态结点来说,可以让它对应一个_程序段。6. 词法分

25、析阶段的任务式从左到右扫描_,从而逐个识别_ 。7. 如果一个种别只含有一个单词符号,那么,对于这个单词符号,_就可以完全代表它自身了。8. 单词符号的属性值是指单词符号的特性或特征,其属性值则是反映特性或特征的值。比如,对于某个标识符,常将_作为其属性值。9. 单词符号的属性值是指单词符号的特性或特征,其属性值则是反映特性或特征的值。比如,对于常数,常将_作为其属性值。10. 如果一个种别含有多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出有关_ 。11. 如果_,则认为这两个正规式等价。12. 对于?*中的任何符号串?,如果存在一条从初态结点到某一终态结点的通路,且_,则称?被该自动机所接受(识别)。13. 一个Lex源程序主要包括两

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1