搜档网
当前位置:搜档网 › 西电软院编译原理试题By李欢

西电软院编译原理试题By李欢

西电软院编译原理试题By李欢
西电软院编译原理试题By李欢

编译原理期末考试习题及答案

一、填空题|(每题4分,共20分) 1. 乔母斯基定义的3型文法(线性文法)产生式形式 A→Ba|a,或A→aB|a,A,B∈Vn, a,b∈Vt 。 2.语法分析程序的输入是单词符号,其输出是语法单位。 3 型为 B → .aB 的LR(0)项目被称为移进项目,型为 B → a.B 的LR(0) 项目被称为待约项目, 4.在属性文法中文法符号的两种属性分别为继承属性和综合属性。 5、运行时存贮管理方案有静态存储分配、动态存储分配和堆式存储分配和方案。 二.已知文法 G(S) (1) E → T | E+T (2) T → F | F*F (3) F →(E)| i (1)写出句型(T*F+i)的最右推到并画出语法树。(4分) (2)写出上述句型的短语,直接短语和句柄。(4分) 答:(1)最右推到(2分) E ==> T ==> F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i) (2) 语法树(2分) (3)(4分) 短语:(T*F+i),T*F+i ,T*F , i 直接短语:T*F , i 句柄:T*F 三. 证明文法G(S) :S → SaS |ε是二义的。(6分) 答:句子aaa对应的两颗语法树为:

因此,文法是二义文法 四.给定正规文法G(S): (1) S → Sa | Ab |b (2) A → Sa 请构造与之等价的DFA。(6分) 答:对应的NFA为:(6分) 状态转换表: a b {F} Φ{S} {S} {S,A} Φ {S,A} {S,A} {S} 五. 构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。(15分)答:(1)对应的NFA(5分) a b {0} {1,3} {0} {1,3} Φ{2,3} {2,3} {1,3} {2,3} (5分) 六. 已知文法G(S) : (1) S → ^ | a | (T) (2) T → T,S | S 试:(1)消除文法的左递归;(4分) (2)构造相应的first 和 follow 集合。(6分) 答:(1)消除文法的左递归后文法 G’(S)为: (1) S → ^ | a | (T)

《编译原理》模拟期末试题汇总 6套,含答案

《编译原理》模拟试题一 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) 1.计算机高级语言翻译成低级语言只有解释一种方式。(×) 2.在编译中进行语法检查的目的是为了发现程序中所有错误。(×) 3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 (√ ) 4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。 (×) 5.每个文法都能改写为 LL(1) 文法。 (√) 6.递归下降法允许任一非终极符是直接左递归的。 (√) 7.算符优先关系表不一定存在对应的优先函数。 (×) 8.自底而上语法分析方法的主要问题是候选式的选择。 (×) 9.LR 法是自顶向下语法分析方法。 (×) 10.简单优先文法允许任意两个产生式具有相同右部。 (×) 二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.一个编译程序中,不仅包含词法分析,_____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析B.( )文法分析C.( )语言分析D.( )解释分析 2.词法分析器用于识别_____。 A.( ) 字符串B.( )语句 C.( )单词 D.( )标识符 3.语法分析器则可以发现源程序中的_____。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正D.( ) 语法错误 4.下面关于解释程序的描述正确的是_____。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1)C.( ) (1)(2)(3) D.( ) (2)(3) 5.解释程序处理语言时 , 大多数采用的是_____方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 6.编译过程中 , 语法分析器的任务就是_____。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4) C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 7.编译程序是一种_____。 A. ( ) 汇编程序B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 8.文法 G 所描述的语言是_____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 9.文法分为四种类型,即0型、1型、2型、3型。其中3型文法是_____。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法 10.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 _____。 A.( ) 句子B.( ) 句型 C.( ) 单词 D.( ) 产生式 三、填空题(每空1分,共10分)

编译原理教程课西安电子科大出版社第三版后习题答案——第二章

第二章 词法分析 2.1 完成下列选择题: (1) 词法分析器的输出结果是 。 a. 单词的种别编码 b. 单词在符号表中的位置 c. 单词的种别编码和自身值 d. 单词自身值 (2) 正规式M1和M2等价是指 。 a. M1和M2的状态数相等 b. M1和M2的有向边条数相等 c. M1和M2所识别的语言集相等 d. M1和M2状态数和有向边条数相等 (3) DFA M(见图2-1)接受的字集为 。 a. 以0开头的二进制数组成的集合 b. 以0结尾的二进制数组成的集合 c. 含奇数个0的二进制数组成的集合 d. 含偶数个0的二进制数组成的集合 【解答】 (1) c (2) c (3) d 图2-1 习题2.1的DFA M 2.2 什么是扫描器?扫描器的功能是什么? 【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。 2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下: f(x,a)={x,y} f{x,b}={y} f(y,a)=Φ f{y,b}={x,y} 试构造相应的确定有限自动机M ′。 【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。 先画出NFA M 相应的状态图,如图2-2所示。 图2-2 习题2.3的NFA M 用子集法构造状态转换矩阵,如表 表2-1 状态转换矩阵 1b a

西电软件学院算法实验报告

第二次试验 一、 问题: Matrix-chain product 分析: 本题是矩阵链乘问题,需要求出最优括号化方案。即在矩阵的乘法链上添加括号来改变运算顺序以使矩阵链乘法的代价降低。 可以分析该链乘的一个子段总结一些结论。假设m[i,j]表示A i*…*A j的链成需要进行的乘法次数(假设j-i足够大),我们可以将A i*…*A j分为两段进行计算:(A i*…*A k)*(A k+1*…*A j)可以得出m[i,j]的递推公式 可以得出,当i=j的时候,m[i,j]=0。当i为例,可以得出如下矩阵:

通过m数组可以得出最少的乘法次数,通过s数组可以输出最优方案。 遇到的问题: 在输出s数组的结果的时候仍然需要递归调用,需要合适的控制递归的条件。 总结: 在矩阵链乘问题中可以看出,动态规划结合递归的思想可以快捷的解决很多问题。本题中,重点是归纳出m[i,j]的递推公式。 二、 问题: Longest Common Subsequence 分析: 本题即是最长公共子序列问题。假设有序列A[m]和序列B[n],显然,对于每一个[i,j],都对应着一个公共子序列的长度。假设长度为c,就可以得到一个二维数组c[m,n]。对于c[i,j],当Ai=Bj的时候,问题就转变为求A[1..i-1]和B[1..j-1]的公共子序列长度的问题,所以c[i,j]的长度就是c[i-1,j-1] + 1; 同理,当Ai != Bj的时候,c[i,j]应该在c[i-1,j]与c[i,j-1]中取最大值。另外,当i或者j等于0的时候,显然c的值为0。由上面所述,可以得到递推公式如下: 为了解决这个问题,还如要定义另一个数组用于存放c数组中每一个元素的来源。这个来源其实就反映了公共子串。可以通过箭头表示来源,相连的箭头序列中指向左上方的箭头最多的一串对应的就是最长公共子序列。 比如对于题目中给出的第一个例子 X: xzyzzyx Y: zxyyzxz 可以用一个矩阵表示计算的过程:

最新编译原理试题汇总+编译原理期末试题(8套含答案+大题集)

编译原理考试题及答案汇总一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式

西电软院操作系统课程设计报告样本

操作系统课程设计 实验报告册 班级: 学号: 姓名: 教师: 褚华

目录 实验说明 重要提示 实验1 系统调用 实验2 内核模块 实验3 文件系统 实验4 设备管理

实验说明 1.实验做为学习的重要促进手段, 是为了深化对理论的理解, 锻炼实践动手能力。 2.实验同时也作为考核的手段。 3.实验内容会在课程进行中下达, 而且会分次地、部分地被抽查。 4.课程结束时, 要求把所有的实验整理成一个完整的电子文档并上交, 做为最后成绩的评定依据。 5.如果有兴趣的合适的题目, 也可自己选题目。 格式说明 1.本文档文件名命名为”学号-姓名”, 如”13071000_小王”。 2.留白部分不足的自己调整长度, 也可加页( 增加内容应在表格内) 。 3.每次的实验报告都要在这个文件中( 按照实验次序依次) 增加, 而不是每次一个新的word文件。 4.本文档保存为doc格式( 请勿用Word 的docx格式) 。 重要提示: 1.实验正文建议使用小四号或五号宋体。 2.若附加图形, 则请直接嵌入到实验手册相应位置。

3.各实验的源程序, 请按实验分目录存放, 如第一个实验的源程序存放在目录lab1下, 第二个实验的源程序存放在目录lab2下等等, 依次类推。 可互相讨论, 但严禁抄袭网络或同学的实验结果。

要给linux增加系统调用, 能够用修改内核源码并重新编译的方法实现一: 基本过程是 1.在系统调用表文件中给要增加的一个系统调用的名字 2.在系统调用号文件中给要新增的系统调用分配一个系统调用号 3.增加系统调用声明 4.添加系统调用的实现 5.重新编译内核 6.编写测试驱动函数, 测试系统调用是否添加成功 一: 在系统调用表文件中增加系统调用的名字 二: 在系统调用号文件中给要新增的系统调用分配一个系统调用号 三: 增加系统调用声明 四: 添加系统调用的实现

编译原理试题(卷)汇总-编译原理期末试题(卷)(8套含答案解析-大题集)

编译原理考试题及答案汇总 一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式 16.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_C____。

软件学院编译原理试题2

北京工业大学年度第学期 计算机学院级【编译原理】考试题(A) 考试形式:开卷考试时间:200年月日学号姓名 1.(6分)回答下列问题 1)在存储管理中,为什么在活动记录内为临时变量分配空间? 解: 活动记录为一次过程调用(函数调用)中的局部数据提供栈式存储空间,随过程调用被分配,随过程调用的结束而释放;临时变量用于保存表达式计算中的中间结果,在活动记录中为临时变量分配空间,可以保证该空间随过程调用被分配,随活动记录的释放被自动释放。 2)在符号表管理中,为什么将变量名保存在符号表中? 解: 符号表中将保存变量名及其各种属性,变量名将用于变量的识别、涉及变量的语义分析、变量名与存储空间的绑定、以及类型、作用域、存储地址等各种变量属性的设置、获取等各种维护功能。 2.(8分)试消除下列文法中的左递归。 S →SaA|Se|B A →BbA|B B →cSd|ε 解: 消除左递归提取左因子改写后的文法 S →SaA|Se|B A →BbA | B S →BS’ →S(aA | e )| B → B ( bA | ε) S’→aA S’ | e S’ | ε 引进非终结符S’引进非终结符A’ A →B A’ S →BS’ A →B A’A’→bA | ε S’→(aA | e )S’ | εA’→bA | ε B →cSd|ε

3. (15分)写出下列文法中各候选式的FIRST集和各非终结符的FOLLOW集,构造该文法的LL(1)分析表,并说明它是否为LL(1)文法。 S →aA|BA A→cB|ε B →bB|ε 解: 各候选式的FIRST集 (4分) FIRST(aA)={a} FIRST(BA)={ b,c,ε } FIRST(cB)={c} FIRST(ε)={ε} FIRST(bB)={ b } FIRST(ε)={ε} 各非终结符的FOLLOW集 (4分) FOLLOW(S)= {#} FOLLOW(A)= {#} FOLLOW(B)= { c,#} LL(1)分析表 (5分) a b c # S S →aA S →BA S →BA S →BA A A→c B A →ε B B →bB B →ε B →ε 说明它是否为LL(1)文法 (2分) 判断1分,理由1分 因为LL(1)分析表无冲突,所以该文法是LL(1)文法。

西电软件工程专业培养方案

工程专业培养方案 [日期: 2007-05-09 ] [字体:大中小] 软件工程专业培养方案 一、培养目标及模式 业培养德、智、体、美全面发展,掌握自然科学和人文社科基础知识、计算机科学及软件工程专业基础理论,具有软件开发能力,具有软件开发实践和项目组织的初步经验,具有创新、创业和服务意识,具有竞争和团队精神,具有熟练的外语运用能力,能适应技术进步和社会需求变化的高素质、实用型、具有国际竞争能力的软件工程专门人才。采用“面向需求、突出特色、强调工程、分流培养”的培养模式。 二、基本要求 为适应我国经济结构战略性调整的要求和软件产业发展对人才的迫切需要,实现软件人才培养的跨越式发展,基于人才可持续发展的培养理念,将知识、能力、素质的培养有机结合。具体要求如下: (一) 素质结构要求 思想道德素质:热爱祖国,拥护中国共产党的领导,树立科学的世界观、人生观和价值观;具有责任心和社会责任感;具有法律意识,自觉遵纪守法;热爱本专业,注重职业道德修养;具有诚信意识和团队精神。 文化素质:具有一定的文学艺术修养,具有良好的文字和口头表达能力,具有交流和沟通能力与现代意识。 专业素质:掌握科学的思维方法、工程设计方法,具备良好的工程素养;具有创新、创业精神;具有严谨的科学态度和务实的工作作风。 身心素质:具有较好的身体素质和心理素质。 (二) 能力结构要求 掌握软件工程的知识与技能,具备软件工程师从事工程实践所需的专业能力。 获取知识能力:具备终身学习能力、信息获取能力、适应学科发展的能力等。

应用知识能力:具备需求分析和建模的能力、软件设计和实现的能力、软件评审与测试的能力、软件过程改进与项目管理的能力、设计人机交互界面的能力、使用软件开发工具的能力等。 创新能力:在基础研发、工程设计和实践等方面具有一定的创新意识和能力。 (三) 知识结构要求 工具性知识:包括外语、文献检索、科技写作等。 人文社会科学知识:包括文学、哲学、政治学、社会学、法学、心理学、思想道德、职业道德、艺术等。 自然科学知识:包括数学、物理学等。 工程学知识:包括软件工程经济学、其他工程应用领域的基础知识。 经济管理知识:包括营销管理学等。 专业技术基础知识:包括计算机科学和数学基础知识,即离散数学、程序设计语言和程序设计、数据结构、计算机组成与结构、操作系统、计算机网络、数据库基础知识等。 专业知识:包括团队合作与沟通、软件需求、软件建模与分析、软件设计、软件验证与确认、软件进化、软件过程与管理、软件体系结构、软件工程的形式化方法、人机交互、工作流技术、电子商务、知识产权与软件保护等。 三、学制与学位 1. 基本学制:四年。 2. 授予学位:工学学士。 四、专业方向与业务能力 结合社会对软件工程专业人才的需求及国际国内软件工程专业的发展特点,参考国际软件工程专业规范和全国教学指导委员会软件工程专业规范,充分考虑西安电子科技大学的专业特色和软件学院自身的特点,软件学院软件工程专业拟开设Web工程与信息系统、软件测试与分析、网络与通信系统软件、嵌入式系统、数字娱乐系统五个培养方向。 Web工程和信息系统方向的学生在学习本专业必修课的基础上,通过限修分布对象技术、Java技术、数据库应用技术、系统分析与设计和Web工程等课程以及工程设计实践,掌握信息系统和Web系统的开发方法、规划、建模、构建、测试、维护、集成和项目管理等理论与技术。毕业生可在电子政务、电子商务、Web应用、ERP、金融、邮政等领域工作。

西电软院网络多媒体上机报告讲解

网络多媒体上机实验报告 目录

实验一哈夫曼编码 实验二算术编码 实验三LZW编码 实验四WAV文件的读取 附录对应的四个源程序 实验一哈夫曼编码

算法分析: 哈夫曼编码采用自底向上的描述方式。哈夫曼编码运用了贪心算法,每次都取权值最小的两个节点合并成一个节点,该合并节点的权值记为两者权值之和,然后继续上述操作直到最后合并成一个节点,在建成树的过程中,就记下了相应的哈夫曼编码。通过已经构造出的哈夫曼树,自底向上,由频率节点开始向上寻找parent,直到parent为树的顶点为止。每个频率都会有一个01编码与之唯一对应,并且任何编码没有前部分是同其他完整编码一样的。 程序设计: 构造最优二叉树:输入入N个叶子节点的权值,找出所有结点中权值最小、无父结点的两个结点,并合并成一个结点,继续在剩下的结点中寻找权值最小的叶子结点,循环合并结点操作,并最终生成最优二叉树,节点在二叉树的深度的编码既是对此组字符的哈夫曼编码。 我们将用自己定义的结构体来表示各个节点,其中结构体中包含权值,左右孩子和父节点,然后用一个select函数来寻找当前最小的两个节点,合并成一个节点,然后继续直到全部合并为一个节点,然后顺着树来将其01编码储存在一个一个字符数组中。 调试过程: 由于之前做过哈夫曼编码问题。因此问题不大,未遇到较难处理的问题。 运行结果:

这是实验的截图,从中可以看出,权值比较大的用到的编码的位数比较少,而权值较小的节点则远离根节点。而且,我们可以从上图看出哈弗曼是一种前缀编码。

实验二算术编码 算法分析: 算数编码是一种更现代的编码方法,算术编码把整个消息看做一个单元。在实际的应用中,输入数据同城被分割成块以避免错误传播。他只传输一个区间的值,从而可以通过迭代得知相应的信息,性能比较好。 程序设计:

(精选)编译原理期末考试题目及答案

一、填空题(每空2分,共20分) 1.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。 2.编译器常用的语法分析方法有自底向上和自顶向下两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。 5.对编译程序而言,输入数据是源程序,输出结果是目标程序。 1.计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2.扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 3.自下而上分析法采用移进、归约、错误处理、接受等四种操作。 4.一个LL(1)分析程序需要用到一张分析表和符号栈。 5.后缀式abc-/所代表的表达式是a/(b-c)。 二、单项选择题(每小题2分,共20分) 1.词法分析器的输出结果是__C。 A.单词的种别编码B.单词在符号表中的位置 C.单词的种别编码和自身值D.单词自身值 2.正规式 M 1 和 M 2 等价是指__C_。 A. M1和M2的状态数相等B. M1和M2的有向边条数相等 C. M1和M2所识别的语言集相等 D. M1和M2状态数和有向边条数相等 3.文法G:S→xSx|y所识别的语言是_C____。 A. xyx B. (xyx)* C.xnyxn(n≥0) D. x*yx* 4.如果文法G是无二义的,则它的任何句子α_A____。 A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握____D__。 A.源程序B.目标语言 C.编译方法 D.以上三项都是 6.四元式之间的联系是通过__B___实现的。 A.指示器B.临时变量C.符号表 D.程序变量 7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为__B___。 A.┐AB∨∧CD∨B.A┐B∨CD∨∧C. AB∨┐CD∨∧ D.A┐B∨∧CD∨8. 优化可生成__D___的目标代码。 A.运行时间较短B.占用存储空间较小 C.运行时间短但占用内存空间大 D.运行时间短且占用存储空间小 9.下列___C___优化方法不是针对循环优化进行的。 A. 强度削弱 B.删除归纳变量C.删除多余运算 D.代码外提 10.编译程序使用_B_区别标识符的作用域。 A. 说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次 C.说明标识符的过程或函数的动态层次 D. 标识符的行号 三、判断题(对的打√,错的打×,每小题1分,共10分) 2.一个有限状态自动机中,有且仅有一个唯一的终态。x

编译原理期末试题及答案

2、写出表达式a+b*(c-d)/e的逆波兰式和三元序列。 3、写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。 4、已知文法G(S)及相应翻译方案 S→aAb {print “1”} S→a {print “2”} A→AS {print “3”} A→c {print “4”} 输入acab, 输出是什么 5、已知文法G(S) S→bAa A→(B | a B→Aa) 写出句子b(aa)b的规范归约过程。 6、已知文法G[S] S→S*aF | aF | *aF F→+aF | +a 消除文法左递归。 1、设文法G(S): S→^ | a | (T) T→T,S | S ⑴消除左递归; ⑵构造相应的FIRST和FOLLOW集合; ⑶构造预测分析表 2.语句if E then S (1) 改写文法,使之适合语法制导翻译; (2) 写出改写后产生式的语义动作。 4.设某语言的for语句的形式为 for i:=E(1) to E(2) do S 其语义解释为 i:=E(1) LIMIT:=E(2) again: if i<=LIMIT then Begin S; i:=i+1 goto again End; (1)写出适合语法制导翻译的产生式; (2)写出每个产生式对应的语义动作。 7.已知文法G(S) S→a | ^ | (T) T→T,S | S (1) 给出句子(a,(a,a))的最左推导; (2) 给出句型((T,S),a)的短语, 直接短语,句柄。 8.对于C 语言do S while E语句 (1)改写文法,使之适合语法制导翻译;

(2)写出改写后产生式的语义动作。 9.已知文法G(S) S→aAcBe A→Ab| b B→d (1)给出句子abbcde的最左推导及画出语法树; (2)给出句型aAbcde的短语、素短语。 10.设文法G(S): S→(T) | aS | a T→T,S | S ⑴消除左递归和提公共左因子; ⑵构造相应的FIRST和FOLLOW集合; ⑶构造预测分析表。 12.已知文法G(S) E→E+T | T T→T*F| F F→(E)| i (1) 给出句型(i+i)*i+i的最左推导及画出语法树; (2) 给出句型(E+T)*i+F 的短语,素短语和最左素短语。 答案: (1)消除左递,文法变为G’[S]: S→^ | a | (T)' T→ST’ | S T’→,ST’ |ε 此文法无左公共左因子。 (2)构造相应的FIRST和FOLLOW集合: FIRST(S)={a, ^, (},FOLLOW(S)={#, ,, )} FIRST(T)={a, ^, (} ,FOLLOW(T)={}} FIRST(T’)={,, ε} ,FOLLOW(F)={)} (3) C→if E then S→CS(1) (2) C→if E then {BACK, NXQ); :=} S→CS(1) {:=MERG, S(1). Chain)} 4. (1) F→for i:=E(1) to E(2) do S→FS(1) (2)F→for i:=E(1) to E(2) do {GEN(:=, E(1).place, _, entry(i)); :=entry(i);

期末考试编译原理试卷及答案

一. 填空题(每空2分,共20分) 1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静 态存储分配方案和动态存储分配方案,而后者又分为(1) 和 (2) 。 2. 规范规约是最(3)规约。 3. 编译程序的工作过程一般划分为5个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及(5) 。另外还有(6)和出错处理。 4.表达式x+y*z/(a+b)的后缀式为 (7) 。 5.文法符号的属性有综合属性和 (8)。 6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i ,j]的地址 计算公式为(9)。 7.局部优化是局限于一个(10)范围内的一种优化。 二. 选择题(1-6为单选题,7-8为多选题,每问2分,共20分) 1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组 ( )。 A . 字符串 B . 产生式 C . 开始符号 D . 文法 2.程序的基本块是指( )。 A . 一个子程序 B . 一个仅有一个入口和一个出口的语句 C . 一个没有嵌套的程序段 D . 一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。 A . 自左向右 B . 自顶向下 C . 自底向上 D . 自右向左 4.在通常的语法分析方法中,( )特别适用于表达式的分析。 A . 算符优先分析法 B . LR 分析法 C . 递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是( )。 A . 四元式序列 B . 间接三元式序列 C . 二元式序列 D . 机器语言程序或汇编语言程序 6. 一个文法所描述的语言是( );描述一个语言的文法是( )。 A . 唯一的 B . 不唯一的 C . 可能唯一,也可能不唯一 7. 如果在文法G 中存在一个句子,当其满足下列条件( )之一时,则称该文法是二义文法。 A . 其最左推导和最右推导相同 B . 该句子有两个不同的最左推导 C . 该句子有两个不同的最右推导 D . 该句子有两棵不同的语法树

编译原理试题B及答案

编译原理试题B 得分一、单项选择题(每题1分,共20分) 1、对编译系统有关概念描述正确的是( B) A.目标程序只能是机器语言 B. 编译程序处理的对象是源语言 C.解释程序属于编译程序 D. 词法分析无法自动进行 2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么 (B) A.词法分析 B. 语法分析 C.语义分析 D. 代码生成 3. 下面不能用于对文法进行描述的是(A ) A.源语言 B. EBNF C.BNF D. 语法图 4. 设有文法G[S]: S→0S|1A|0,A→1|1S|0B,B→1A|0B,下列符号串中是该文法的句子的是 ()? A.1010001001101 B.0101001110010010 C.1101010011110111 D.1010011101101010 (可画出DFA验证) 5. 文法G[S]: S→aA|bC|a A→aS|bB B→aC|bA|b C→aB|bS ,则不是L(G)句子的是( B )100501001000500aba B. a.a babbA5006021004010aa aaba D. aabC.abb (画出DFA) 6. 哪个不是DFA的构成成分(B) A.有穷字母表 B. 初始状态集合 C.终止状态集合 D. 有限状态集合 7.词法分析器的输入是( B ) A.单词符号串 B.源程序 C.语法单位 D.目标程序 8.在词法分析阶段不能识别的是(C ) A.标识符 B. 运算符 C.四元式 D. 常数

9.设有一段C语言程序while(i&&++j)

{ c=2.19; j+=k; i++;经过词法分析后可以识别的单词个数是(B )} ,.19 B.20 C.21 D.23A ( B )10.自上而下语法分析的主要动作是 C.规约 D. 匹配A.移进 B. 推导 ( D )分析器的自称部分是11.下面不属于LL(1) 总控程序 B. LL(1)分析表A.LL(1).分析栈 D.源程序串C 设有文法G[S]为12.→aS|c,C→AD|b,DBS→AB|bC, A→ε|b,→ε|aD A )则FOLLOW(A)为(.{a,#} D.{#}A.{a,c,#} B.{c,#} C G[S]: 13.设有文法)FIRST(Ap)为( C Ap|Bq→,A→a|cA,B→b|dB ,则S 其他.{p,q} B. {b,d} C.{a,c} D. A )自下而上语法分析的主要分析动作是(D 14. D. 移进-规约A.推导 B. 规约 C.匹配 ( C ) 15.算法优先分析中,可规约串是 .最左素短语 D.素短语A.句柄 B.活前缀 C )( B →SaS|ε},S}16. 设有文法,该文法是.二义性文法 B 文法A.LL(1)C.SLR(1)文法 D.算法优先文法 17、中间代码生成时所以据的是(C ) A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E) 则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为( C ) A.iii*i++ B.ii+iii**+ C.ii+ii*i*+ D.其他 19.在编译程序中与生成中间代码的目的无关的是(B ) A.便于目标代码优化 B.便于存储空间的组织 C.便于目标代码的移植 D.便于编译程序的移植 20.中间代码是介于源语言程序和什么之间的一种代码( D) A.源代码 B. 机器语言 C. 汇编语言 D. 目标代码 得分二.简答(每题3分,共12分) 1. 什么是解释程序? 解释程序也是一种翻译程序,它将源程序作为输入并执行之,即边解释边执行。 2. 词法分析器的主要任务是什么? 词法分析器的主要任务是逐步扫描和分解构成源程序的字符串,识别出一个一个的单词符号。 3.文法有哪几部分组成?

西电书目(10年的,仅供参考)

学科、专业考试科目书名作者出版单位281 二外日语《标准日本语》(初级上下、中 级上) 中日合编人民教育出版社 282 二外俄语《新编大学俄语基础教程》应云天高等教育出版社 《大学俄语练习题汇编》张玉丽西电科大出版社 283 二外德语《德语速成》(上下册)肖佩玲外语教学与研究出版社284 二外法语《简明法语教程》(上下册)孙辉商务出版社 811 信号与系统、通信原理《信号与线性系统分析》(三版)吴大正高等教育出版社 《现代通信原理与技术》张辉西电科大出版社 821 信号、电路与系统《信号与线性系统分析》(四版)吴大正高等教育出版社 《电路》(四版)邱关源高等教育出版社 822 电磁场与微波技术《电磁场与电磁波基础》路宏敏科学出版社 《微波技术基础》廖承恩西电科大出版社 《天线原理》魏文元国防工业出版社 823 自动控制理论基础《自动控制理论》邹伯敏机械工业出版社 841 机械原理《机械原理》(六版)孙桓等编著高等教育出版社 842 理论力学《理论力学》(六版)哈工大编高等教育出版社 843 自动控制原理《自动控制原理》吴麒编等清华大学出版社 844 信号与系统《信号与线性系统分析》(三版)管致中等编著高等教育出版社 《信号与线性系统分析》(四版)吴大正高等教育出版社 851 物理光学与应用光学《物理光学与应用光学》石顺祥等西电科大出版社 852 量子力学《量子力学教程》周世勋高等教育出版社 861 经济学《西方经济学》(三版、微观和 宏观部分)高鸿业主编中国人民大学出版社 2004 862 运筹学与管理学原理《运筹学》(二版、前六章)清华编写组清华大学出版社 《管理学》(二版)周三多高等教育出版社 2005 863 管理综合《管理经济学》(四版)吴德庆等中国人民大学出版社 《管理学》(二版)周三多主编高等教育出版社2005 864 管理信息系统与数据库《管理信息系统》黄梯云高等教育出版社 《数据库系统概论》萨师煊高等教育出版社 871 高等代数《高等代数》(二版)北京大学高等教育出版社 872 普通物理《大学物理学》张三慧清华大学出版社 《普通物理》程守洙高等教育出版社 873 物理化学《物理化学》(四版、不含结构 化学)天大物化教研 室 高等教育出版社 881 艺术学概论《艺术学概论》彭吉象北京大学出版社 883 科学社会主义原理《科学社会主义理论与实践》高放中国人民大学出版社

西电软院数通复习题1.ans

一填空 1.非对称数字用户线(ADSL)采用的多路复用技术是频分复用。 2.在相隔2000km的两地间通过电缆以4800b/s的速率传送3000比特长的数据包,从开始发送到接收完数据需要的时间是0.635ms,如果用50 Kb/s的卫星信道传送,则需要的时间是70ms。 3.8个9600b/s的信道按时分多路复用在一条线路上传输,在统计TDM情况下,假定每个子信道有80%的时间忙,复用线路的控制开销为5%,那么复用线路的带宽为64kb/s。 4.E1载波把32个信道按TDM方式复用在一条2.048Mb/s的高速信道上,每条话音信道的数据速率是64kb/s,该基本帧的传送时间为125μs。 5.贝尔系统T3信道的数据速率大约是44.736Mb/s。 6.下图所示的调制方式是2DPSK,若载波频率为2400Hz,则码元速率为1200baud/s。 1 1101 7.设信道带宽为3400Hz,采用PCM编码,采样周期为125μs,每个样本量化为128个等级,则信道的数据速率为56kb/s。 8.假设模拟信号的最高频率为5MHz,采样频率必须大于10MHz,才能使得到的样本信号不失真,如果每个样本量化为256个等级,则传输的数据速率是80Mhz。 9.在异步通信中,每个字符包含1位起始位、7位数据位、1位奇偶位和2位终止位,若每秒钟传送100个字符,采用4相相位调制,则码元速率为550b/s,有效数据速率为700b.s。 二选择题 ●下图表示了同一个数据的两种编码,这两种编码分别是(1),该数据是(2)。 + 0 x - + 0 y - (1)A. X为差分曼彻斯特码,Y为曼彻斯特码 B. X为差分曼彻斯特码,Y为双极性码 C. X为曼彻斯特码,Y为差分曼彻斯特码 D. X为曼彻斯特码,Y为不归零码 (2)A. 010011110 B. 010011010 C. 011011010 D. 010010010 ●HDLC协议是一种(3),采用(4)标志作为帧定界符。 (3)A. 面向比特的同步链路控制协议 B. 面向字节计数的同步链路控制协议 C. 面向字符的同步链路控制协议

相关主题