① 北邮计算机考研需要哪些专业课教材和资料
北京邮电大学计算机科学与技术专业2019年考研招生简章招生目录得知考试科目:
①101思想政治理论②201英语一③301数学一④803计算机学科基础综合
专业课教材及资料:
616马克思主义原理
824大众文化与网络传播
613民法
818教育技术学
813管理基础
806电磁场理论
810控制工程基础
821设计基础
811概率论
820经济学基础
612马克思主义哲学原理
805物理学
302数学二
817英语语言学与文学基础
826物流学
618设计理论
801通信原理
241法语二外
240日语二外
803信息与通信工程学科专业基础综合
812高等代数
814中西方哲学史
615管理学
815法学综合
804信号与系统
802电子电路
819行政管理
614英语语言基础
808理论力学
617传播学理论
(1)编译原理李文生扩展阅读:
北京邮电大学(Beijing University of Posts and Telecommunications),简称北邮,是中华人民共和国教育部直属,工业和信息化部共建的一所以信息科技为特色,工学门类为主体,管理学、文学、理学等多个学科门类协调发展的全国重点大学,是北京高科大学联盟成员高校 、国家首批“双一流”世界一流学科建设高校 、中国政府奖学金来华留学生接收院校。系国家“211工程”、“985工程优势学科创新平台”项目重点建设,首批“卓越工程师教育培养计划”、“111计划”、''两电一邮''成员之一,被誉为“中国信息科技人才的摇篮”。
前身是1955年成立的新中国第一所邮电高等学府——北京邮电学院。1960年被国务院确定为全国重点高校。 1993年更名为“北京邮电大学”。2000年,划入教育部直属高校行列。2012年,信息与通信工程一级学科全国排名第一。
据2018年6月学校官网显示,学校有西土城路、沙河、宏福、小西天四个校区,在江苏无锡和广东深圳分别设有研究院。有18个教学单位,开设43个本科专业;博士后科研流动站6个,博士学位授权一级学科点10个,硕士学位授权一级学科点22个,7类专业硕士学位授权点;一级学科国家级重点学科2个;全日制本、硕、博学生及留学生近23000名。
② 编译原理笔记17:自下而上语法分析(4)LR(0)、SLR(1) 分析表的构造
(移进项目就是纳凯态指圆点右边是终结符的项目,规约项目指的就是圆点在右部最右端的项目)
LR(0) 文法可以直接通过识别活前缀的 DFA 来构造 LR 分析表
假定 C = {I 0 , I 1 , ... , I n } (aka. LR(0) 项目规范族、DFA 状态集)
首先为文法产生式进行编号,拓广文法的产生式要标记为 0(这里就是后面分析表中 rj 的产生式编号 j 的由来)
然后令每个项目集 I k 的下标 k 作为分析器洞源的状态(行首),包含 S' → .S 的集合下标为分析器的初态(也就是 DFA 的初态孙型,一般都是 0 )。
下面用一个例子来说明 ACTION、GOTO 子表的构造:
SLR(1) 为解决冲突提出了一个简单的方法:通过识别活前缀的 DFA 和【简单向前看一个终结符】构造 SLR(1) 分析表。
如果我们的识别活前缀的 DFA 中存在移进-规约冲突、规约-规约冲突,都可以尝试使用这个方法来解决冲突。(这里说【尝试】,当然是因为 SLR 也只能解决一部分问题,并不是万能的灵丹妙药。。)
这里,我们拿前面那个 LR(0) 解决不了的文法来举例
该文法不是 LR(0) 文法,但是是 SLR(1) 文法。
观察上图 DFA 中的状态2,想象当我们的自动机正处于这个状态:次栈顶已经规约为 T 了,栈顶也是当前的状态 2 ,而当前剩余输入为 *。
如果这个自动机不会【往前多看一步】的话,那么对处于这个状态的自动机来说,看起来状态 2 中的移进项目和规约项目都是可选的。这就是移进-规约冲突。
想要解决这个冲突,就轮到【往前多看一步】上场了——把当前剩余输入考虑进来,辅助进行项目的选择:
对其他的冲突也使用同样的方法进行判断。
这种冲突性动作的解决办法叫做 SLR(1) 解决办法
准备工作部分,与 LR(0) 分析表的构造差不多:同样使用每个项目集的状态编号作为分析器的状态编号,也就同样用作行下标;同样使用拓广文法产生式作为 0 号产生式。
填表也和 LR(0) 类似,唯一的不同体现在对规约项的处理方法上:如果当前状态有项目 A → α.aβ 和 A → α. ,而次栈顶此时是 α 且读写头读到的是 a,那么当且仅当 a∈FOLLOW(A) 时,我们才会用 A → α 对 α 进行规约。
如果构造出来的表的每个入口都不含多重定义(也就是如上图中表格那样的,每个格子里面最多只有一个动作),那么该表就是该文法的 SLR(1) 表,这个文法就是 SLR(1) 文法。使用 SLR(1) 表的分析器叫做一个 SLR(1) 分析器。
任意的二义文法都不能构造出 SLR(1) 分析表
例:悬空 else
例:
这里的 L 可以理解为左值,R 可以理解为右值
经过计算可以确定其 DFA 如下图所示。
在 状态4 中,由于 "=" 同时存在于 FOLLOW(L) 与 FOLLOW(R) 中,因此该状态内存在移进-规约冲突,故该文法不是 SLR(1) 文法。
这样的非二义文法可以通过增加向前看终结符的个数来解决冲突(比如LL(2)、LR(2))但这会让问题更加复杂,故一般不采用。而二义文法无论向前看多少个终结符都无法解决二义性。
③ 编译原理中的文法设计这题该怎么做,能给一下思路和答案吗
文法的设计需要考虑文法的类型和表达能力。一种可能的思路是:
首先,确定值为非负的5的倍数或3的李腊消倍数的数字串有什么特征,例如结尾只能是0或5或3或6或9,不能有前导0等。
然后,选择合适的文法类型来描述这些特征,例如正规文法、上下文无关文法等。
最后,根据文法类哪知型的规则,给出局宽产生式和开始符号。
一种可能的答案是:
使用正规文法来描述这个语言。
产生式如下:
开始符号为S。
④ 编译原理中语法分析的一道问题
LALR我做着做着觉得不对,但SLR还是没问题的,这道题工程量非常庞大,想必以后也一定有人问,我就简要的带过吧,我归纳的解题步骤是:
构造LR(0)项目集规范族
求出FOLLOW集
根据规则圈出sj和rj对应的产生式
算出goto数
构造分析表
⑤ 编译原理:静态数组的存储空间可以在编译时确定。这句话为什么是错的。请给出详细原因,谢谢。
静态变量在程序运行过程中只在第一次初始化时,会赋初始值,以后即使再初始化其值也不会改变。
任何变量的存储空间及存储在内存中的位置都是由操作系统在程序运行时才分配的,只能说存储空间的大小是程序里面的初始化语句决定的。
静态变量、全局变量和局部变量
1.从作用域看:
C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:
全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。
1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern关键字再次声明这个全局变量。
2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对所有的函数都是可见的,而静态局部变量只对定义自己的函数体始终可见。
3>局部变量也只有局部作用域,它是自动对象(auto),它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回。
4>静态全局变量也具有全局作用域,它与全局变量的区别在于如果程序包含多个文件的话,它作用于定义它的文件里,不能作用到其它文件里,即被static关键字修饰过的变量具有文件作用域。这样即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量。
2.从分配内存空间看:
1>全局变量,静态局部变量,静态全局变量都在静态存储区分配空间,而局部变量在栈里分配空间
2>全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
1)全局变量、静态全局变量以及静态局部变量都会被放在程序的静态数据存储区(全局可见)中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它们与堆变量、堆变量的区别。
2)静态变量(包括静态局部变量和静态全局变量)用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。
从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。因此static这个说明符在不同的地方所起的作用是不同的。应予以注意。
Tips:
A.若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;
B.若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;
C.设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题,因为他们都放在静态数据存储区,全局可见;
D.如果我们需要一个可重入的函数,那么,我们一定要避免函数中使用static变量(这样的函数被称为:带“内部存储器”功能的的函数)
E.函数中必须要使用static变量情况:比如当某函数的返回值为指针类型时,则必须是static的局部变量的地址作为返回值,若为auto类型,则返回为错指针。
⑥ 《编译原理考研辅导教程》pdf下载在线阅读全文,求百度网盘云资源
《编译原理考研辅导教程》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1d6s5KhHw8Ru3mccYMac7ZA
⑦ 编译原理中词法分析和语法分析的任务分别是什么
在编译原理中,语法规则和词法规则不同之处在于:规则主要识别单词,而语法主要识别多个单词组成的句子。
词法分析和词法分析程序:
词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。
语法分析(Syntax analysis或Parsing)和语法分析程序(Parser)
语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.
语义分析(Syntax analysis)
语义分析是编译过程的一个逻辑阶段. 语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查, 进行类型审查.语义分析将审查类型并报告错误:不能在表达式中使用一个数组变量,赋值语句的右端和左端的类型不匹配.
⑧ 【编译原理】第四章:语法分析
从分析树的根节点到叶节点方向构造分析树。
即从开始符号S推导出词串w的过程。
例:
总是选择每个句型的 最左非终结符 进行替换。
总是选择每个句型的 最右非终结符 进行替换。
在自底向上的分析中,总是采用 最左规约 的方式,因此把 最左规约 称为 规范规约 ,对应的 最右推导 称为 规范推导 。
最左推导、最右推导具有唯一性。
自顶向下的语法分析采用最左推导方试,总是选择每个句型的 最左非终结符 进行替换。
由一组 过程 组成,每一个过程对应一个 非终结符 。
从文法开始符号S开始,递归调用文法中的其他非终结符,最终扫描整个输入串,完成分析。
如果其间有不唯一的产生式,就可能需要退回上一步重新尝试的情况,称为 回溯 。
预测分析 是 递归下降分析 技术的一个特例,通过输入中向前看固定个数的符号选择正确的产生式。
如果一个文法可以构造出向前看k个符号的预测分析器,称为LL(k)文法 。
预测分析不需要回溯,具有确定性。
含有 形式产生式的文法称为是 直接左递归 的。
如果一个文法中有一个非终结符A使得对某个串存在推导 ,那么这个文法是 左递归 的。其中,经过两步或以上推导产生的左递归,称为 间接左递归 的。
左递归会使递归下降分析器陷入无限循环。
文法
即
该文法是直接左递归的,会陷入无限循环。
将以上文法转换为:
即可消除左递归。事实上,这个过程把左递归转换成了右递归。
消除直接左递归的一般形式
使用代入法。
对于一个文法,通过改写产生式来 推迟决定 ,等获得足够多的输入信息再做正确的决定。
例:文法:
可以改写为:
从文法的开始符号S开始,每一步推导根据当前句型的最左非终结符A和当前输入符号α,选择正确的A-产生式。为保证分析的确定性,选出的候选式必须是唯一的。
S_文法(简单的确定型文法)
可能在某个举行中紧跟在A后面的终结符a的集合,记为 FOLLOW(A) 。
如果A是某个句型的最右符号,则将结束符“ $ ”添加到FOLLOW(A)中。
例:文法:
中,FOLLOW(B) = {a, c}
产生式 的可选集是指可以选用该产生式进行推导时对应的输入符号的集合,记为 SELECT(A->β) 。
例如
SELECT(A -> aβ)={a}
SELECT(A -> aβ | bγ)={a, b}
SELECT(A -> ε)=FOLLOW(A)
q_文法
文法符号串α串首终结符的集合,记作 FIRST(A) 。
⑨ 《编译原理》txt下载在线阅读全文,求百度网盘云资源
《编译原理》(陈意云)电子书网盘下载免费在线阅读
链接: https://pan..com/s/1BOpMeUxvK5kF_TeMACnD6Q
书名:编译原理
作者:陈意云
豆瓣评分:6.2
出版社:高等教育出版社
出版年份:2003-1
页数:381
内容简介:
《编译原理》介绍编译器构造的一般原理和基本实现方法,主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。除了介绍命令式编程语言的编译技术外,《编译原理》还介绍面向对象语言和函数式编程语言的实现技术。《编译原理》还强调一些相关的理论知识,如形式语言和自动机理论、语法制导的定义和属性文法、类型论和类型系统等。
《编译原理》取材广泛新颖、图文并茂,注意理论联系实际。为满足教师教学和学生自学及考研需求,《编译原理》作者编写了配套教学参考书《编译原理习题精选与解析》(高等教育出版社2005年8月出版),同时提供本课程的电子教案,可从高等教育出版社高等理工教学资源网免费下载。《编译原理》可作为高等学校计算机科学及相关专业的教材,也可供计算机软件工程技术人员参考使用。
⑩ 北京邮电大学计算机考研的复试科目是什么
北京邮电大学计算机考研复试的笔试科目:在编译原理与技术、计算机系统结构、数据库系统原理、软件工程、通信原理、人工智能六门选四门。
笔试科目参考书目
编译原理与技术:
1、《编译程序设计原理与技术》李文生北京邮电大学出版社。
2、《编译原理》(第2版)张素琴等,清华大学出版社。
3、《现代编译原理C语言描述》AndrewW.Appel着,赵克佳等译。
计算机系统结构:
1、《计算机体系结构》郑纬民、汤志忠清华大学出版社2001年。
2、《并行计算机系统结构(第二版)》白中英编着科学出版社2006年。
数据库系统原理:
1、《数据库系统概论》王珊萨师煊着,高等教育出版社。
2、《数据库系统概念》杨冬青马秀莉等译,机械工业出版社。
3、《数据库系统原理》李建中王珊着,电子工业出版社。
软件工程:
1、《软件工程模型与方法》,肖丁、吴建林等编,北京邮电大学出版社。
2、《实用软件工程》,郑人杰等,清华大学出版社。
3、《UML和模式应用》第三版,CraigLarman,机械工业出版社。
通信原理:
1、《通信原理(合订本)》,周炯_、庞沁华、续大我、吴伟陵,北京邮电大学出版社。
2、《通信原理》第六版,樊昌信,国防出版社。
人工智能:
《人工智能及其应用》(本科生用书),蔡自兴等,第三版,清华大学出版社,2003。