2018年广东工业大学808电路理论考研真题试题试卷

2018年广东工业大学808电路理论考研真题试题试卷

芝士传媒 × 题源库 https://www.360docs.net/doc/4a18926787.html,...让知识更美味...

目录

2018 年广东工业大学808电路理论考研真题试题试卷 (2)

第 1 页,共 5 页

广东工业大学数据库原理与应用试卷答案

广东工业大学试卷用纸,共 页,第 页

广东工业大学试卷用纸,共页,第页

广东工业大学试卷用纸,共页,第页

一、填空(每题1分,共10分) 1、层次模型,网状模型,关系模型 2、逻辑结构设计,物理结构设计 3、原子性,持续性 4、并发调度的可串行性 5、闭包 6、描述事物的符号记录 二、选择题(每题2分,共20分) 三、简答题(每题4分,共16分) 1、解释数据库,数据库系统,数据库管理系统三个概念。 数据库是指长期存储于计算机内的、有组织的、可共享的数据集合。(1分) DBMS是指位于用户与OS之间的一层数据管理软件,它位用户或应用程序提供访问DB的方法。(1分) DBS是实现有组织的、动态的存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即采用数据库技术的计算机系统。(2分) 2、试述视图和基本表之间的联系和区别? (1)视图和基本表在概念上等同,他们都是关系。(1分) (2)基本表是本身独立存在的表。视图是从一个或几个基本表(或视图)中导出的表,它与基本表不同,是一个 虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍然放在原来的基本表中。(3分) 3、数据库的完整性概念与数据库的安全性概念有什么区别和联系? 数据的完整性和安全性是两个不同的概念,但是有一定的联系。 前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。(2分) 后者是保护数据库防止恶意的破坏和非法的存取。也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。(2分) 4、什么是封锁?基本的封锁类型有几种,简要说明它们的含义。 封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。(2分)基本封锁类型:排它锁和共享锁。 排它锁又称为写锁:若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁(1分) 共享锁又称为读锁:若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T 释放A 上的S锁。(1分) 四、计算(4分) 1、(R÷S)×S={(2,3,4,5),(2,7,2,3)} 2 广东工业大学试卷用纸,共页,第页

广工编译原理(精选题集+必考大题

《编译原理》期末试题(二) 1、描述由正规式b*(abb*)*(a| ε)定义的语言,并画出接受该语言的最简DFA。 2、证明文法E → E + id | id是SLR(1)文法。 3、下面是表达式和赋值语句的文法,其中and的类型是bool ? bool → bool,+的类型是int ? int → int,=的类型是int ? int → bool,:= 要求id和E的类型都是int或者都是bool。为该文法写一个语法制导定义或翻译方案,它完成类型检查。 S →id := E E → E and E | E + E | E = E |id 6、描述由正规式b*a(bb*a)*b*定义的语言,并画出接受该语言的最简DFA。 7、下面的文法产生代表正二进制数的0和1的串集: B → B 0 | B 1 | 1 下面的翻译方案计算这种正二进制数的十进制值: B →B1 0 {B.va l := B1.val? 2 } | B1 1 {B.val := B1.val? 2 +1} | 1 {B.val := 1 } 请消除该基础文法的左递归,再重写一个翻译方案,它仍然计算这种正二进制数的十进制值。 编译原理试卷二答案 1、由正规式b*(abb*)*(a| ε)定义的语言是字母表{a, b}上不含子串aa的所有串的集合。最简DFA如下: 2、先给出接受该文法活前缀的DFA如下:

I0和I3都只有移进项目,肯定不会引起冲突;I2和I4都无移进项目并仅含一个归约项目,也肯定不会引起冲突;在I1中,E'的后继符号只有$,同第2个项目的展望符号“+”不一样,因此I1也肯定不会引起冲突。由此可以断定该文法是SLR(1)的。 3、语法制导定义如下。 S →id := E { S.type := if (id.type = bool and E.type = bool) or (id.type = int and E.type = int)then type_ok else type_error } E → E1and E2 { E.type := if E1.type = bool and E2.type = bool then bool else type_error } E → E1 + E2 { E.type := if E1.type = int and E2.type = int then int else type_error } E → E1 = E2{ E.type := if E1.type = int and E2.type = int then bool else type_error } E →id { E.type := lookup(id.entry) } 6、正规式b*a(bb*a)*b*体现的特点是,每个a的左边都有若干b,除非a是第一个字母。该正规式定义的语言是:至少含一个a,但不含子串aa的所有a和b的串集。最简DFA如下: 7、消除左递归后的文法: B → 1 B' B'→ 0 B' | 1 B' | ε 相应的翻译方案如下: B → 1 {B'.i := 1 }B'{B.val := B'.val} B'→ 0 {B'1.i := B'.i? 2 } B'1 {B'.val := B'1.val} | 1 {B'1.i := B'.i? 2 +1} B'1 {B'.val := B'1.val} | ε {B'.val := B'.i} 《编译原理》期末试题(三) 1、从优化的范围的角度,优化可以分哪两类?对循环的优化可以有哪三种?答:从优化的范围的角度,优化可以分为局部优化和全局优化两类; 对循环的优化有三种:循环不变表达式外提、归纳变量删除与计算强度削减。

(精选)广工2014编译原理实验报告

实验报告 课程名称编译原理 题目名称 PL/0编译器的扩充 学生学院计算机学院 专业班级计算机科学与技术12(4) 学号 3112005901 学生姓名柏石先 指导教师李杨 程序功能完成情况 测试用例全面程度 学生对所编程序熟悉程度 报告格式是否与要求相符 报告内容是否准确、全面 2014 年 12 月 20日

一、实验目的与要求 对PL/0作以下修改扩充: (1)增加单词:保留字 ELSE,FOR,STEP,UNTIL,DO,RETURN 运算符 *=,/=,&,||,! (2)修改单词:不等号# 改为 <> (3)增加条件语句的ELSE子句,要求:写出相关文法,语法描述图,语义描述图。 二、实验环境与工具 1、源语言:PL/0语言,PL/0语言是PASCAL语言的子集,它的编译程序是一个编译解 析执行系统,后缀名为.PL0; 2、目标语言:生成文件后缀为*.COD的目标代码 3、实现平台:Borland C++Builder 6 4、运行平台:Windows 8.1 三、结构流程 1、结构设计说明 (1)PL/0 语言编译器 PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。

2、词法分析程序的设计 四、开发过程 (一)增加单词:保留字 ELSE,FOR,STEP,UNTIL,DO , RETURN 运算符 *=,/=,&,||,! 新增6个保留字和5个运算符,合计11个单词。 其中保留字ELSE,FOR,STEP,UNTIL,DO, RETURN分别对应ELSESYM,FORSYM, STEPSYM, UNTILSYM,DOSYM,RETURNSYM; 运算符 *= ,/= ,& ,|| ,!分别对应TIMESBECOMES, SLASHBECOMES, ANDSYM, ORSYM, NOTSYM。 注:要求只做词法分析部分,不做语义分析处理,实验的结果只是识别新增的保留字和运算 1.首先考虑需要增加保留字的个数,以及如何命名,再将新增的保留字添加对应的保留字的集合中。具体实现的语句如下所示: typedef enum { NUL, IDENT, NUMBER, PLUS, MINUS, TIMES, SLASH, ODDSYM, EQL, NEQ, LSS, LEQ, GTR, GEQ, LPAREN, RPAREN, COMMA, SEMICOLON, PERIOD,

广工编译原理报告

《编译原理》 专项选修课程实验报告 学院计算机学院 专业网络工程 年级班别2013级3班 学号 学生姓名 辅导教师刘添添 成绩 2015年12月

实验一 一.完成内容 扩充单词: (1)将保留字if改为fi (2)增加保留字else (3)增加运算符++、+= 二.设计思路 (1)将保留字if改为fi 1)修改变量定义 2)修改GetSym()方法 (2)增加保留字else 1)修改变量定义 头文件 2)修改GetSym()方法

(3)增加运算符++、+= 1)修改变量定义 2)修改GetSym()方法 三.调试 1、添加else保留字时出错,原因是忽略了查找时是用折半查找的解决方法:按字母表顺序修改定义变量。 四.运行测试 (1)将保留字if改为fi var a,b; begin a:=1; b:=2;

fi b>a then write(a) end. (2)增加保留字else (3)增加运算符++、+=

实验二 一.完成内容 扩充else 子句 二.设计思路 (1)EBNF 范式以及语法描述图 语句 (1) 递归下降子程序 if(sym==ifsym) { getsymdo; memcpy(nxtlev,fsys,sizeof(bool)*symnum); nxtlev[thensym]=true; nxtlev[dosym]=true; conditiondo(nxtlev,ptx,lev); /*调用条件处理(逻辑运算)函数*/ if(sym==thensym) { getsymdo; } else { error(16); /*缺少then*/ } //~~~~~~从这里开始修改~~~~~~~~~~~~~~~ cx1=cx; gendo(jpc,0,0); memcpy(nxtlev,fsys,sizeof(bool)*symnum); nxtlev[elsesym]=true; statementdo(nxtlev,ptx,lev); code[cx1].a=cx; if ( sym==elsesym ) { cx2=cx; getsymdo; if 条件 then 语句 else 语句

广工编译原理课程设计报告

课程设计 课程名称___编译原理__________ 题目名称___PL/0编译器的扩充__ 学生学院___计算机学院_________ 专业班级_计算机科学与技术13(9) 学号 学生姓名 指导教师___林志毅________________ 2016年1月2日 一、已完成的内容: (1)扩充赋值运算:*=和/= (2)扩充语句(Pascal的FOR语句) FOR<变量>:=<表达式>STEP<表达式>UNTIL<表达式>Do<语句> (3)增加类型:①字符类型;②实数类型。 VARIABLE*/ GetSym(); if(SYM==BECOMES||SYM==TIMESBECOMES||SYM==SLASHBECOMES||SYM= =PLUSBECOMES||SYM==MINUSBECOMES){ RELOP=SYM; if(SYM!=BECOMES){TABLE[i].; } GetSym(); }elseError(13); EXPRESSION(FSYS,LEV,TX); if(RELOP==TIMESBECOMES){ GEN(OPR,0,4); }elseif(RELOP==SLASHBECOMES){

GEN(OPR,0,5); }elseif(RELOP==PLUSBECOMES){ G E N (OPR,0,2); }elseif(RELOP==MINUSBECOMES){ GEN(OPR,0,3); } GEN(STO,LEV-TABLE[i].,TABLE[i].; } (1)运行测试(测试的PL0源码扩充单词的测试并贴运行结果截图) PL0源码: PROGRAMEX01; VARA,B,C,D; BEGIN A:=16; A/=2; (2)WRITE(A);运行结果: (3)出现的问题及解决 开始时在实现/=和*=操作时,*=的实现很顺利,而/=却一直没有得到理想的结果,通过与同学的讨论得知代码中除号指令的解析中, 其实为除余操作,于是将%改为/,但是结果还是错误,经过调试发现 是两个相除的数在栈中的位置相反了,正确的状态应该是除数位于次 栈顶,而被除数位于栈顶。 解决:在调用EXPRESSION函数解析/=右边表达式前,先将其左边变量的值放入栈中。 1.扩充语句(Pascal的FOR语句) FOR<变量>:=<表达式>STEP<表达式>UNTIL<表达式>Do<语句> (1)语法图 (2)修改GetSym()方法(写出修改的代码) 此处无修改,FOR、STEP、UNTIL及DO等关键字已放置关键字数组中,通过该数组便可识别。 (3)修改STATEMENT()方法(写出修改的代码) caseFORSYM: GetSym(); (4)STATEMENT(SymSetUnion(SymSetNew(STEPSYM),FSYS),LEV,TX);=CX; =CX;运行结果: (5)出现的问题及解决

广东工业大学编译原理实验报告

实验报告 课程名称____ 编译原理__________ 题目名称_ PL/0编译程序的修改扩充_ 学生学院______计算机学院__ 专业班级_______ ________ 学号 学生姓名______ ________ 指导教师____ _________ __ 20 年月日

一、课内实验要求 对PL/0作以下修改扩充: 增加单词:保留字ELSE,FOR,TO,DOWNTO,RETURN 运算符*=,/=,++,--,&,||,! 修改单词:不等号# 改为<> 增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。 二、实验环境与工具 计算机及操作系统:PC机,Windows2000,WindowsXP 程序设计语言:C 教学型编译程序:PL/0 设计方案 概述:源、目标语言,实现工具(平台),运行平台 源语言:PASCAL 目标语言:假想栈式计算机的汇编语言,可称为类PCODE指令代码 实现工具:Visual C++ 6.0 运行平台:Windows 7 三、设计方案 1.结构设计说明 (1)PL/0 语言编译器 PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。

(2)PL/0编译程序的语法分析过程BLOCK是整个编译过程的核心。这里根据编译程序的总体流程图,来弄清BLOCK过程在整个编译程序中的作用。总流程图如下图所示: PL/0语法调用关系图

PL/0 的编译程序采用一趟扫描方式,以语法分析程序为核心,词法分析程序和代码生 成程序都作为一个独立的过程,当语法分析需要读单词时就用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错误给出在源程序中出错的位置和错误性质。 (3)各功能模块描述

广东工业大学 数据库 真题 附答案 (1)

广东工业大学试卷用纸,共 页,第 页 学 院 : 专 业: 学 号: 姓 名 : 装 订 线 广东工业大学考试试卷 ( ) 课程名称: 考试时间: 年 月 日 (第 周 星期 ) 题 号 一 二 三 四 五 六 七 八 九 十 总分 评卷得分 评卷签名 复核得分 复核签名 一、填空题(每题1分,共10分) 1、数据库领域中最常用的数据模型有 层次模型 、 网状模型 、 关系模型 和面向对象模型。 2、数据库设计包括需求分析、概念结构设计、 逻辑结构设计 、 物理结构设计 数据库实施、数据库运行和维护六个阶段。 3、事务的特性包括 原子性 、 持续性 、隔离性和一致性。 4、 并发调度的可串行性 是并发事务正确性的准则。 5、F 逻辑蕴涵的全体函数依赖构成的函数依赖的集合,称为F 的 闭包 。 6、数据是 描述事物的符号记录 。 二、选择题(每题2分,共20分) 1、 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是_____。 A 、外模式 B 、内模式 C 、存储模式 D 、模式 2、 实体完整性是指关系中 ____。 A 、元组值不允许为空 B 、属性值不允许空 C 、主属性值不允许为空 D 、主码值不允许为空 3、数据库系统的逻辑独立性是指____。 A 、不会因为数据的变化而影响应用程序 B 、不会因为系统数据存储结构预数据逻辑结构的变化而影响应用程序 C 、不会因为存取策略的变化而影响存储结构 D 、不会因为某些存储结构的变化而影响其他的存储结构。 4、候选关键字中属性称为 。 A.非主属性 B.主属性 C.复合属性 D.关键属性

2014年广工编译原理实验报告

编译原理实验 学院 __________ 专业计算机科学与技术 年级班别11 级计科7班 学号3111 _____________________ 学生姓名 ______________________ 指导教师李小妹_________ 成绩________________________ 2014年1月

一、实验目的与要求 对PL/O作以下修改扩充: (1)增加单词:保留字ELSE , FOR , STEP , UNTIL , DO,RETURN 运算符*=,/=,& ,||,! (2)修改单词:不等号#改为<> (3)增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。 二、实验环境与工具 1、源语言:PL/0语言,PL/0语言是PASCAL S言的子集,它的编译程序是一个编译解析执行系 统,后缀名为PL0 ; 2、目标语言:生成文件后缀为*.COD的目标代码 3、实现平台:Borla nd C++Builder 6 4、运行平台:Win dowsXP 三、设计方案 1、结构设计说明 (1)PL/0语言编译器 PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。 PL/0 源程序 (2)PL/0编译程序的语法分析过程BLOCK S整个编译过程的核心。这里根据编译程序的总体流程图,来弄清BLOCK S程在整个编译程序中的作用。总流程图如

下图所示: PL/O的编译程序采用一趟扫描方式,以语法分析程序为核心,词法分析程序和代码生 成程序都作为一个独立的过程,当语法分析需要读单词时就用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错 误给出在源程序中出错的位置和错误性质。

编译原理考研真题

2003年编译原理考研真题 1.(10分)叙述下面的正规式描述的语言,并画出接受该语言的最简DFA的状态转换图。 ( 1 | 01 )* 0* 2.(10分)某语言有两种语句: S →过程调用语句| 下标变量赋值语句 过程调用语句的形式是:id(id,id, …, id),即过程名加置于圆括号中的变量表。 下标变量赋值语句的形式是:id(id, id, …, id):= id(id, id, …, id),赋值号两边都是数组名加置于圆括号中的变量表。 (a) 请你完成过程调用语句和下标变量赋值语句的文法设计,得到一个以语句S为开始符号的LR(1)文法。不得超过6个产生式,不需要给出你的文法是LR(1)文法的证明。 (b) 如果想在LR分析的同时完成语义分析和中间代码生成,基于你的文法有什么困难? 3.(10分) (a) 为下面的算术表达式文法写一个语法制导的翻译方案,它将每个子表达式E的符号(即值大于零还是小于零)记录在属性E.sign中(属性值分别用POS 或NEG表示)。你可以假定所有的整数都不为零,这样就不用担心零的符号。 E→E *E | +E | -E | unsigned_integer (b) 为上面的表达式产生栈机器代码。代码执行后,表达式的值留在栈上。你自己设计所需的栈机器指令,并写清楚指令的含义。 4.(10分)在C语言的教材上,称&为地址运算符,&a为变量a的地址。但是教材上没有说明表达式&a的类型是什么。另外,教材上说,数组名代表数组的首地址,但是也没有说明这个值的类型。它们所带来的一个问题是,如果a是一个数组名,那么表达式a和&a的值都是数组a的首地址,但是它们的使用是有区别的,初学时很难掌握。 下面我们给出4个C文件,请你根据编译报错信息和程序运行结果,写出表达式a和&a的类型表达式。若你能掌握它们的类型,那么它们的区别就清楚了,你也就会正确使用它们了。 (1)文件1: typedef int A[10][20]; A a; A *fun() { return(a); } 该函数在Linux上用gcc编译时,报告的类型错误如下:

考试题型2014

*考试题型(供参考) 三.(5分)写一个文法,使其语言是: L = { a m b n | m≥n≥1 } 答:G[S]: S → aSb | aAb A → aA |ε 四.(7分)给出接受字母表∑={a,b},语言为以b开头,以aa结尾的字符串 集合的正规表达式,并构造与之等价状态的NFA。(或求DFA!) 答: 依题意,以b开头,以aa结尾的字符串集合的正规表达式可写为: b(a|b)*aa(3分) 画NFA,如下图所示(4分) a b 五.(10分)已知文法:G[S]: S → aA | d A → bAS |ε (1)(4分)求出每条产生式的选择集 Select(S→aA) = Select(S→d) = Select(A→bAS) = Select(A→ε) = (2)(6分)判断该文法是否为LL(1)文法,若是,请给出理由并构造预测分析 表。 七. (10分)设有拓广文法G为: S’→ S S → LaR | R L → bR | c R → L 其部分LR(1)项目集和转换函数如下图所示。

(1)写出状态I0,I12,I9的内容; (2)判断该文法是否为LR(1)文法。 答: (1)8分 I0 I12 (2)因为状态图中没有冲突,所以是LR(1)文法。(2分) 八.(8分)试完成下列语句翻译的四元式序列。 while (A>B) do if(C>D) then X:=Y*Z else X:=Y+Z; (1) if A>B goto (3) (2) goto (11) (3) _________ (4) goto (8) (5) _________ (6) X:=T1 (7) (8) T2:=Y+Z (9) X:=T2 (10) _________ (11) 答:

国防科技大学编译原理和操作系统1996真题

国防科技大学研究生院1996年硕士生入学考试 编译原理和操作系统试题(操作系统部分) 注意:1.统考生做一、二、三、四、五、七、八、九、十、十一、十二题 2.单独考生做一、二、三、四、六、七、八、九、十、十一、十三题 3.答案只能写在答题纸上 一.选择题(在下列各小题的备选答案中,请把你认为正确答案的题号,填入题干后的括号内。多选、少选及选错不给分。每题3分,共15分) 1.分时操作系统需要使用下面哪些成份。() ①多道程序设计技术②作业说明书 ③终端命令解释程序④中断处理 ⑤优先级调度⑥系统调用 2.进程具有哪些特性。() ①动态性②共享性③并发性④相互制约性⑤独立性⑥静态性 3. 在页式虚存管理系统中,若常发生抖动影响CPU的利用率,从系统管理员的角度,则下 面哪些方法可改善CPU的利用率。() ①用一个更快的CPU ②用一个更大的辅存③减少多道程序的道数 ④增加多道程序的道数⑤增大主存⑥采用更快的I/O设备 4.在文件系统中,为实现文件保护一般应采用下面哪些方法。() ①口令②密码③访问控制④复制⑤在读写文件之前使用OPEN系统调用 ⑥在读写文件之后使用CLOSE系统服务 5. 从资源分配角度,操作系统把外部设备分为( ) ①独占型设备②共享型设备③快速型设备④慢速性设备 ⑤块设备⑥字符型设备⑦虚拟设备 二、(9分)对访问串:1,2,3,4,1,2,5,1,2,3,4,5, 指出在驻留集大小分别为3,4时,使用FIFO 和LRU替换算法的页故障数。结果说明了什么? 三.(8分)简述文件的二级目录组织形式。欲实现文件共享如何处理? 四.(8分)假设有5道作业,它们的提交时间及运行时间由下表给出: 作业提交时间(时)运行时间(小时) 110 2 210.051 310.25 0.75 412.250.5 512.50.25 若采用FCFS和SJF两种调度算法,指出作业以单道串行方式运行时的被调度顺序及平均周转时间。 五.(10分)设有如下图所示的工作模型。

广工编译原理试题

编译原理试题 计算机学院_____级班学号姓名 一选择题 1有限状态自动机能识别: A.上下文无关语言 B.上下文有关语言 C.正规语言 D.0型文法定义的语言 2 已知文法G是无二义的,则对G的任意句型α: A.最左推导和最右推导对应的语法树必定相同 B.最左推导和最右推导对应的语法树可能相同 C.最左推导和最右推导必定相同 D.可能存在两个不同的最左推导,但他们对应的语法树相同 3 ______不是DFA的成分 A.有穷字母表 B.多个初始状态的集合 C.多个终态的集合 D.转换函数 4 有文法G=({S},{a},{S::=SaS,S::=ε},S),该文法是_________ A.LL(1)文法 B.二义性文法 C.算符优先文法 D.正规文法 5 有一语法制导翻译如下所示: S->bAb {print “1” } A->(B {print “2” } A->a {print “3” } B->Aa) {print “4” } 若输入序列为b(((aa)a)a)b,则采用自下而上的分析方法,则输出为: A.32224441 B.34242421 C.12424243 D.34442212 二判断题 1、一个LL( l)文法一定是无二义的。 2、逆波兰法表示的表达式亦称前缀式。----> 后缀式 3、算符优先关系表不一定存在对应的优先函数。 4、同心集的合并有可能产生“移进/归约”冲突。只能是归约/归约 5、若主程序为0层,过程p层次为k,则p的DISPLAY表中就有k+1个元素。 三填空题 1、词法分析的任务是从__源程序_中识别出一个个__单词符号__。 V则称“S →α.A”为待约项目,称“S →α.aβ” 2、在LR(0)分析法中,若α,β∈V*且a∈ T

编译原理样题2

*编译原理试题 计算机学院_____级班学号姓名 一选择题 1、编译原理各阶段工作都涉及 2 (第1章): A.词法分析 B.表格管理 C.语法分析 D.语义分析 2、正则表达式R1和R2等价是指 3 (第4章) A.R1和R2都是定义在一个字母表上的正则表达式 B.R1和R2中使用的运算符相同 C.R1和R2代表同一正则集 D.R1和R2代表不同正则集 3、在以下的语法分析中, 4 特别适合于表达式的分析。(第5,6,7章) A.LR分析 B.LL(1)分析 C.递归下降分析 D.算符优先分析 4、与(a|b)*(a|b)等价的正规式是 3 。(第4章) A.a*| b* B.(ab)*(a|b) C.(a|b)(a|b)* D.(a|b)* 5、在语法制导翻译中不采用拉链回填技术的语句是 2 。(第8章) A.跳转语句 B.赋值语句 C.条件语句 D.循环语句 6、在属性文法中,终结符只具有 B 属性。(第8章) A.传递 B.继承 C.抽象 D.综合 7、过程的Display表中记录了_ 2 _____。(第10章) A. 过程的连结数据 B. 过程的嵌套层数 C. 过程的返回地址 D. 过程的入口地址 二判断题 1、最左归约也称为规范归约。(第3章) 1 2、逆波兰法表示的表达式把运算对象放在运算符的后面。(第8章) 0 3、同心集的合并有可能产生“归约/归约”冲突。(第7章)1 4、DFA可以通过多条路径识别一个符号串。(第4章)0 5、动态数组的存储空间在编译时就可完全确定。(第10章)0 三填空题 1、词法分析所依循的是语言的文法;而中间代码生成所依循的是语义。(第4,8章)

编译原理样题3

*编译原理样题 一选择题 【】1.____型文法也称为正规文法。 [A] 0 [B] 1 [C] 2 [D] 3 【】2.____文法不是LL(1)的。 [A] 递归 [B] 右递归 [C] 2型 [D] 含有公共左因子的 【】3.文法E→E+E|E*E|i的句子i*i+i*i的不同语法分析树的总数为______。 [A]1 [B]3 [C]5 [D]7 【】4.四元式之间的联系是通过实现。 [A]临时变量 [B]指示器 [C]符号表 [D]程序变量 【】5.同心集合并可能会产生的新冲突为。 [A]二义 [B]移进/移进 [C]移进/归约[D]归约/归约 【】6.代码优化时所依据的是。 [A]语法规则 [B]词法规则 [C]等价变换规则 [D]语义规则 【】7.表达式a-(-b)*c的逆波兰表示为。 [A]a-b@c* [B]ab@c*- [C]ab@- [D]ab@c-* (注:@为单目减运算符)【】8.过程的DISPLAY表记录了。 [A]过程的连接数据[B]过程的嵌套层次 [C]过程的返回地址 [D]过程的入口地址 二填空题 1.编译过程的六个阶段为:词法分析、、语义分析、代码优化和目标代码生成。 2.词法分析阶段的任务式从左到右扫描,从而逐个识别。 3.对于文法G1和G2,若有,则称文法G1和G2是等价的。 4.对于文法G[E]:E→T|E+T T→F|T*F F→P^F|P P→(E)|i,句型T+T*F+i的句柄是,最左素短语是。 所谓素短语是指这样的一个短语,它至少含有一个终结符,并且,除它自身之外不再含任何更小的素短语。所谓最左素短语是指处于句型最左边的那个素短语。如,P*P和i是句型P*P+i的素短语,而P*P 是它的最左素短语。

广工编译原理试卷A

编译原理试卷A 一、选择题(每空2分,共20分) 1.一个正规语言只能对应(B)? A 一个正规文法; B 一个最小有限状态自动机; 2.文法G[A]:A→ε A→aB B→Ab B→a是(B): A 正规文法 B 二型文法 3.下面说法正确的是(A): A 一个SLR(1)文法一定也是LALR(1)文法 B 一个LR(1)文法一定也是LALR(1)文法 4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A): A 必要条件 B 充分必要条件 5. ( D )不是NFA的成分。 A 由穷字母表 B 初始状态集合 C 终止状态集合 D 有限状态集合 6.(C )不是编译程序的组成部分 A 词法分析程序 B 代码生成程序 C 设备管理程序 D 语法分析程序 7.有文法G=({S},{a},{S→SaS, S→ε},S),该文法是( B )。 A. LL(1)文法 B. 二义性文法 C 算符优先文法 D SLR(1)文法 8 给定文法 A→bA|cc,则符号串①cc②bcbc③bcbcc④bccbcc⑤bbbcc中,是该文法句子的是( D ) A ① B ③④⑤ C ②④ D ①⑤ 9 表达式A*(B-C*(C/D))的逆波兰表示为( B ) A. ABC-CD/** B. ABCCD/*-* C. ABC-*CD/* D. 前三个选项都不对 10 LR(1)文法都是( A ) A 无二义性且无左递归 B 可能有二义性但无左递归 C 无二义性但可能有无左递归 D 可以既有二义性又有左递归 二、问答题 第1题(10分)将文法G[S] 改写为等价的G′[S],使G′[S]不含左递归和左公共因子。

广工编译原理实验报告

词法分析 一、增加保留字else 1.未增加else为保留字前,运行测试: (1)测试代码: (2)测试结果: 编译器识别else为标识符。 2.增加保留字else,编译器识别else为保留字 1)代码修改: ①在枚举集合中添加else 标识:enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, lss, leq, gtr, geq, lparen, rparen, comma, semicolon,period, becomes, beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym,

varsym, procsym,elsesym, }; ②修改保留字个数:#define symnum 33 ③修改关键字个数:# define norw 14 ④设置保留字名字:strcpy(&(word[4][0]),"else"); ⑤设置保留字符号:wsym[4]=elsesym; 2)运行测试: ①测试代码: ②测试结果: 识别else为保留字。 二、增加单字符[ 和] 1.未添加单字符 [ 和 ]前,运行测试: (1)测试代码:

(2)测试结果: 编译器结果打印[或]的sym 值为空 2.增加单字符[ 和] (1)代码修改: ①在枚举集合中添加else 标识:enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, lss, leq, gtr, geq, lparen, rparen, comma, semicolon,period, becomes, beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym,elsesym, lb, rb, }; ②修改保留字个数:#define symnum 35 ③设置保留字符号:ssym['[']=lb; ssym[']']=rb; (2)运行测试: ①测试代码:

广工编译原理复习例题

编译原理复习例题 2.设有文法G:S→S+S|S*S|i|(S)。(1)对于输入串i+i*i 给出一个最左推导; (2)该文法是否是二义性文法?请证明你的结论。 解:(1)i+i*i的最左推导: S => S+S => i+S => i+S*S => i+i*S => i+i*i (2)该文法是二义性的。因为对于句子i+i*i可以画出两棵语法树(语法 树略)。 3.给出语言{a m b m c n|m≥1,n≥0}的上下文无关文法(2型)。 解:G: S→AB|A A→a Ab|ab B→cB|c 4.给出语言{a k b m c n|k,m,n≥1}的正规文法(3型)。 解: G: A→aA|aB B→bB|bC C→cC|c 5.将文法G改写成等价的正规文法(3型)。 G: S→dAB A→aA|a B→bB|b 解: G: S→dA A→aA|aB B→bB|b 6.构造一文法产生任意长的a,b串,使得 |a|≤|b|≤2|a| 其中,“|a|”和“|b|”分别表示串中的字符a和b的个数。 解:b的个数在a的个数和其2倍之间,串的结构形如aSBS和BSaS,其中B为 1或2个b。故得文法 G: S→aSBS|BSaS|ε B→b|bb 7.设有字母表{a,b}上的正规式R=(ab|a)*。 (1)构造R的相应有限自动机; 解: (2)构造R的相应确定有限自动机; (3)构造R的相应最小确定有限自动机;解:对(2)得到的DFA化简,合并状态0和2 为状态2: (4)构造与R等价的正规文法 解:令状态1和2分别对应非终结符B和A G: A→aB|a|ε B→aB|bA|a|b|ε 可化简为: G: A→aB|ε a + a

广工编译原理复习例题(有客观题的答案概要

编译原理复习例题 一选择题 1.编译的各阶段工作都涉及 B 。 [A]词法分析 [B]表格管理 [C]语法分析 [D]语义分析 2. D 型文法也称为正规文法。 [A] 0 [B] 1 [C] 2 [D] 3 3. D 文法不是LL(1)的。 [A]递归 [B]右递归 [C]2型 [D]含有公共左因子的 4.文法E→E+E|E*E|i的句子i*i+i*i有 C 棵不同的语法树。 [A] 1 [B] 3 [C] 5 [D] 7 5.文法 S→aaS|abc 定义的语言是 C 。 [A]{a2k bc|k>0} [B]{a k bc|k>0} [C]{a2k-1bc|k>0} [D]{a k a k bc|k>0} 6.若B为非终结符,则 A→α.Bβ为 D 。 [A]移进项目 [B]归约项目 [C]接受项目 [D]待约项目 7.同心集合并可能会产生新的 D 冲突。 [A]二义 [B]移进/移进 [C]移进/归约 [D]归约/归约 8.代码优化时所依据的是 C 。 [A]语法规则 [B]词法规则 [C]等价变换规则 [D]语义规则 9.表达式a-(-b)*c的逆波兰表示(@为单目减)为 B 。 [A]a-b@c* [B]ab@c*- [C]ab@- [D]ab@c-* 10.过程的DISPLAY表是用于存取过程的 B 。 [A]非局部变量 [B]嵌套层次 [C]返回地址 [D]入口地址 11. 已知右图所示自动机M,请问下列哪个字符串不是M [A] bbaa [B] abba [C] abab [D] aabb 12.若状态k含有项目“A→α.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A→α”归约的语法分析方法是 D 。 [A] LALR分析法 [B] LR(0)分析法 [C] LR(1)分析法[D] SLR(1)分析法

广东工业大学数据库原理与设计试卷部分答案

一、问答题(共16分) 1、(2分)简述视图和基本表之间的联系和区别。. 答:视图是从一个或者几个基本表导出的表.它本身不独立存储在数据库中,视图的数据只是存放在导出视图的基本表中,因此试图只是一个虚表.视图在概念上与基本表相同. 2、(4分)举例说明关系的参照完整性的含义。 答:比如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码. Sno,Cno分别参照引用Student表的主码和Course表的主码. CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY(Sno,Cno),/*在表级定义实体完整性*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /*在表级定义参照完整性*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) /*在表级定义参照完整性*/ ); 4、(4分)解释下列术语,说明它们之间的联系和区别:关系、关系模式、关系数据库、关系数据库模式。 5、(3分)什么是数据库的安全性?什么是数据库的完整性?二者有什么区别和联系? 6.简单表达一下数据库系统的三级模式 答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成.外模式也称子模式或者用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。(数据库可以有多个外模式)。模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图.(一个数据库只有一个模式)。内模式也称存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。 7.规范化的思想 答:规范化的基本思想是逐步消除数依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,即“一事一地”的模式设计原则。让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去。因此所谓的规范化实质上就是概念的单一化。 二、选择题(共26分,每小题2分) 1、在数据库的三级模式结构中,描述数据库中全体数据的逻辑结构和特征的是 D 。 A.外模式 B.内模式 C.存储模式 D.模式 2、数据库中,数据的物理独立性是指 C 。 A.数据库与数据库管理系统的相互独立 B.用户程序与DBMS的相互独立 C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 D.应用程序与数据库中数据的逻辑结构相互独立 3、关系模型中,一个关键字 C 。 A.可由多个任意属性组成 B.至多由一个属性组成 C.可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成 D.以上都不是 S,且W、R、S的元组个数分别为p、m、n,那么三者之间满足——。 4、设W=R j i

广工编译原理复习

编译原理复习 ——Always麦 第一章引论 ●什么是编译程序: 翻译程序:将一种语言(源语言)翻译成另一种逻辑上等价的语言(目标语言)的程序。 编译程序:源语言为高级语言,目标语言是低级语言(汇编或机器语言)的翻译程序。 ● ●图 ●图1.10 编译程序结构框图 P6 ●前端、后端的概念: 前端:与源语言有关,而与目标机无关的编译程序 后端:与目标机有关,而与源语言无关的编译程序

●遍、趟的概念:是对源程序或源程序的中间结果从头到尾扫描并完成规定任 务的过程 第二章PL/0 编译程序的实现 ●P18 三个变量 通过三个全程量 SYM 、ID和NUM 将识别出的单词信息传递给语法分析程序。 SYM:存放单词的类别,用内部编码形式表示。 ID:存放用户所定义的标识符的值。即标识符字符串的机内表示。 NUM:存放用户定义的数。 ●P22 符号表【画】 TX: table表的下标指针,是以值参数形式使用的。 DX:计算每个变量在运行栈中相对本过程基地址的偏移量,每次都会初始化为3 ●P29 运行栈【画】 RA返回地址:记录调用该过程时目标程序的断点,即调用过程指令的下一条 指令的地址 DL动态链:指向调用该过程前正在运行过程的数据段基地址。 SL静态链:指向定义该过程的直接外过程(或主程序)运行时最新数据段的 基地址 ●P28 I P T 寄存器 I:指令寄存器。存放当前正在解释的一条目标指令 P:程序地址寄存器。指向下一条要执行的目标程序的地址 T:栈顶寄存器。指向当前栈中最新分配的单元 B: 总是指向当前执行过程活动记录的起始地址 ●CX 、 CODE CX为目标代码CODE数组的下标指针 ●

相关文档
最新文档