当前位置:首页 » 编程软件 » 编译原理第一章问答题

编译原理第一章问答题

发布时间: 2023-06-04 01:43:07

㈠ 软考中级软件设计师要学会哪种程序设计语言(我只学过C,C++,汇编)

朋友,我考过,别听他们胡说
软件设计师考试分上午和下午
上午的考试是选择题目,范围很广
C和C++都有,但题目难度不大,汇编语言不考,建议多看看软件工程的理论知识,考得很多,特别在下午。还有操作系统,编译原理等跟计算机专业相关的理论
下面给出大纲:
软件设计师考试大纲
一、考试说明
1.考试要求:
(1) 掌握数据表示、算术和逻辑运算;
(2) 掌握相关的应用数学、离散数学的基础知识;
(3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理;
(4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;
(5) 熟练掌握常用数据结构和常用算法
(6) 熟悉数据库、网络和多媒体的基础知识;
(7) 掌握C程序设计语言,以及C++、java、Visual、Basic、Visual C++中的一种程序设计语言;
(8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;
(9) 熟悉掌握软件设计的方法和技术;
(10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(11) 了解信息化、计算机应用的基础知识;
(12) 正确阅读和理解计算机领域的英文资料。
2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程的实际工作能力和业务水平。
3.本考试设置的科目包括:
(1) 计算机与软件工程知识,考试时间为150分钟,笔试;
(2) 软件设计,考试时间为150分钟,笔试。
二、考试范围
考试科目1:计算机与软件工程知识
1. 计算机科学基础
1.1 数制及其转换
• 二进制、十进制和十六进制等常用制数制及其相互转换
1.2 数据的表示
• 数的表示(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出)
• 非数值表示(字符和汉字表示、声音表示、图像表示)
• 校验方法和校验码(奇偶校验码、海明校验码、循环冗余校验码)
1.3 算术运算和逻辑运算
• 计算机中的二进制数运算方法
• 逻辑代数的基本运算和逻辑表达式的化简
1.4 数学基础知识
• 命题逻辑、谓词逻辑、形式逻辑的基础知识
• 常用数值计算(误差、矩阵和行列式、近似求解方程、插值、数值积分)
• 排列组合、概率论应用、应用统计(数据的统计分析)
• 运算基本方法(预测与决策、线性规划、网络图、模拟)
1.5 常用数据结构
• 数组(静态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树、平衡树、线索树、线索树、堆)、图等的定义、存储和操作
• Hash(存储地址计算,冲突处理)
1.6 常用算法
• 排序算法、查找算法、数值计算方法、字符串处理方法、数据压缩算法、递归算法、图的相关算法
• 算法与数据结构的关系、算法效率、算法设计、算法描述(流程图、伪代码、决策表)、算法的复杂性
2. 计算机系统知识
2.1 硬件知识
2.1.1 计算机系统的组成、体系结构分类及特性
• CPU和存储器的组成、性能和基本工作原理
• 常用I/O设备、通信设备的性能,以及基本工作原理
• I/O接口的功能、类型和特性
• I/O控制方式(中断系统、DMA、I/O处理机方式)
• CISC/RISC,流水线操作,多处理机,并行处理
2.1.2 存储系统
• 主存-Cache存储系统的工作原理
• 虚拟存储器基本工作原理,多级存储体系的性能价格
• RAID类型和特性
2.1.3 安全性、可靠性与系统性能评测基础知识
• 诊断与容错
• 系统可靠性分析评价
• 计算机系统性能评测方式
2.2 软件知识
2.2.1 操作系统知识
• 操作系统的内核(中断控制)、进程、线程概念
• 处理机管理(状态转换、共享与互斥、分时轮转、抢占、死锁)
• 存储管理(主存保护、动态连接分配、分段、分页、虚存)
• 设备管理(I/O控制、假脱机)
• 文件管理(文件目录、文件组织、存取方法、存取控制、恢复处理)
• 作业管理(作业调度、作业控制语言(JCL)、多道程序设计)
• 汉字处理,多媒体处理,人机界面
• 网络操作系统和嵌入式操作系统基础知识
• 操作系统的配置
2.2.2 程序设计语言和语言处理程序的知识
• 汇编、编译、解释系统的基础知识和基本工作原理
• 程序设计语言的基本成分:数据、运算、控制和传输,过程(函数)调用
• 各类程序设计语言主要特点和适用情况
2.3 计算机网络知识
• 网络体系结构(网络拓扑、OSI/RM、基本的网络协议)
• 传输介质、传输技术、传输方法、传输控制
• 常用网络设备和各类通信设备
• Client/Server结构、Browser/Server结构
• LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接
• 因特网基础知识以及应用
• 网络软件
• 网络管理
• 网络性能分析
2.4 数据库知识
• 数据库管理系统的功能和特征
• 数据库模型(概念模式、外模式、内模式)
• 数据模型,ER图,第一范式、第二范式、第三范式
• 数据操作(集合运算和关系运算)
• 数据库语言(SQL)
• 数据库的控制功能(并发控制、恢复、安全性、完整性)
• 数据仓库和分布式数据库基础知识
2.5 多媒体知识
• 多媒体系统基础知识,多媒体设备的性能特性,常用多媒体文件格式
• 简单图形的绘制,图像文件的处理方法
• 音频和视频信息的应用
• 多媒体应用开发过程
2.6 系统性能知识
• 性能指标(响应时间、吞吐量、周转时间)和性能设计
• 性能测试和性能评估
• 可靠性指标及计算、可靠性设计
• 可靠性测试和可靠性评估
2.7 计算机应用基础知识
•信息管理、数据处理、辅助设计、自动控制、科学计算、人工智能等基础知识
• 远程通信服务基础知识
• 常用应用系统
3. 系统开发和运行知识
3.1 软件工程、软件过程改进和软件开发项目管理知识
• 软件工程知识
• 软件开发生命周期各阶段的目标和任务
• 软件开发项目管理基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具
• 主要的软件开发方法(生命周期法、原型法、面向对象法、CASE)
• 软件开发工具与环境知识
• 软件过程改进知识
• 软件质量管理知识
• 软件开发过程评估、软件能力成熟评估基础知识
3.2 系统分析基础知识
• 系统分析的目的和任务
•结构化分析方法(数据流图(DFD)、数据字典(DD)、实体关系图(ERD)、描述加工处理的结构化语言)
• 统一建模语言(UML)
• 系统规格说明书
3.3 系统设计知识
• 系统设计的目的和任务
• 结构化设计方法和工具(系统流程图、HIPO图、控制流程图)
• 系统总体结构设计(总体布局、设计原则、模块结构设计、数据存储设计、系统配置方案)
• 系统详细设计(代码设计、数据库设计、用户界面设计、处理过程设计)
• 系统设计说明书
3.4 系统实施知识
• 系统实施的主要任务
• 结构化程序设计、面向对象程序设计、可视化程序设计
• 程序设计风格
• 程序设计语言的选择
• 系统测试的目的、类型,系统测试方法(黑盒测试、白盒测试、灰盒测试)
• 测试设计和管理(错误曲线、错误排除、收敛、注入故障、测试用例设计、系统测试报告)
• 系统转换基础知识
3.5 系统运行和维护知识
• 系统运行管理基础知识
• 系统维护基础知识
• 系统评价基础知识
3.6 面向对象开发方法
• 面向对象开发概念(类、对象、属性、封装性、继承性、多态性、对象之间的引用)
• 面向对象开发方法的优越性以及有效领域
• 面向对象设计方法(体系结构、类的设计、用户接口设计)
• 面向对象实现方法(选择程序设计语言、类的实现、方法的实现、用户接口的实现、准备测试数据)
• 面向对象程序设计语言(如C++、Java、Visual、Bsasic、Visual C++)的基本机制
• 面向对象数据库、分布式对象的概念
4. 安全性知识
• 安全性基本概念
• 防治计算机病毒、防范计算机犯罪
• 存取控制、防闯入、安全管理措施
加密与解密机制
•风险分析、风险类型、抗风险措施和内部控制
5. 标准化知识
• 标准化意识、标准化的发展、标准制订过程
• 国际标准、国家标准、行业标准、企业标准基本知识
• 代码标准、文件格式标准、安全标准、软件开发规范和文档标准知识
• 标准化机构
6. 信息化基础知识
• 信息化意识
• 全球信息化趋势、国家信息化战略、企业信息化战略和策略
• 有关的法律、法规
• 远程教育、电子商务、电子政务等基础知识
• 企业信息资源管理基础知识
7. 计算机专业英语
• 掌握计算机技术的基本词汇
• 能正确阅读和理解计算机领域的英文资料
考试科目2:软件设计
1. 外部设计
1.1 理解系统需求说明
1.2 系统开发的准备
• 选择开发方法、准备开发环境、制订开发计划
1.3 设计系统功能
• 选择系统结构,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制订详细的工作流和数据流
1.4 设计数据模型
• 设计ER模型、数据模型
1.5 编写外部设计文档
• 系统配置图、各子系统关系图、系统流程图、系统功能说明书、输入输出规格说明、数据规格说明、用户手册框架
• 设计系统测试要求
1.6 设计评审
2. 内部设计
2.1 设计软件结构
•按构件分解,确定构件功能规格以及构件之间的接口
• 采用中间件和工具
2.2 设计输入输出
• 屏幕界面设计、设计输入输出检查方法和检查信息
2.3 设计物理数据
• 分析数据特性,确定逻辑数据组织方式、存储介质,设计记录格式和处理方式
• 将逻辑数据结构换成物理数据结构,计算容量,进行优化
2.4 构件的创建和重用
• 创建、重用构件的概念
• 使用子程序库或类库
2.5 编写内部设计文档
• 构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、文件设计文档、数据库设计文档
2.6 设计评审
3.程序设计
3.1 模块划分(原则、方法、标准)
3.2 编写程序设计文档
• 模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述)
• 测试要求说明书(测试类型和目标、测试用例、测试方法)
3.3 程序设计评审
4.系统实施
4.1 配置计算机系统及其环境
4.2 选择合适的程序设计语言
4.3 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中任一种程序设计语言,以便能指导程序员进行编程和测试,并进行必要的优化
4.4 系统测试
• 指导程序员进行模块测试,并进行验收
• 准备系统集成测试环境和测试工具
• 准备测试数据
• 写出测试报告
5.软件工程
• 软件生存期模型(瀑布模型、螺旋模型、喷泉模型)和软件成本模型
• 定义软件需求(系统化的目标、配置、功能、性能和约束)
• 描述软件需求的方法(功能层次模型、数据流模型、控制流模型、面向数据的模型、面向对象的模型等)
• 定义软件需求的方法(结构化分析方法、面向对象分析方法)
• 软件设计(分析与集成、逐步求精、抽象、信息隐蔽)
• 软件设计方法(结构化设计方法、Jackson方法、Warnier方法、面向对象设计方法)
• 程序设计(结构化程序设计、面向对象程序设计)
• 软件测试的原则与方法
• 软件质量(软件质量特性、软件质量控制)
• 软件过程评估基本方法、软件能力成熟度评估基本方法
• 软件开发环境和开发工具(分析工具、设计工具、编程工具、测试工具、维护工具、CASE)
• 软件工程发展趋势(面向构件,统一建模语言(UML))
•软件过程改进模型和方法

㈡ 编译原理中 左递归具体解释是什么

定义:
"一个文法是左递归的,若我们可以找出其中存在某非终端符号A,最终会推导出来的句型(sentential form)里面包含以自己为最左符号(left-symbol)的句型"

A -> Aa 或
A -> Ba
B -> A
两种形式的文法.

㈢ 编译原理题目

习题一、单项选择题
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、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。
3、对编译而言,变量既持有左值又持有右值,故选c。
4、编译程序打交道最多的就是各种表格,因此选d。
5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。
6、词法分析遵循的是构词规则,语法分析遵循的是语法规则,中间代码生成遵循的是语义规则,并且语义规则可以定义一个程序的意义。因此选a。
7、b 8、c 9、d 10、c
二、多项选择题
1、编译程序各阶段的工作都涉及到 。
a.语法分析 b.表格管理 c.出错处理
d.语义分析 e.词法分析
2、编译程序工作时,通常有 阶段。
a.词法分析 b.语法分析 c.中间代码生成
d.语义检查 e.目标代码生成
解答
1.b、c 2. a、b、c、e
三、填空题
1、解释程序和编译程序的区别在于 。
2、编译过程通常可分为5个阶段,分别是 、语法分析 、代码优化和目标代码生成。 3、编译程序工作过程中,第一段输入是 ,最后阶段的输出为 程序。
4、编译程序是指将 程序翻译成 程序的程序。 解答
是否生成目标程序 2、词法分析 中间代码生成 3、源程序 目标代码生成 4、源程序 目标语言
一、单项选择题
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*)}
3、有限状态自动机能识别 。
a. 上下文无关文法 b. 上下文有关文法
c.正规文法 d. 短语文法
4、设G为算符优先文法,G的任意终结符对a、b有以下关系成立 。
a. 若f(a)>g(b),则a>b b.若f(a)<g(b),则a<b
c. a~b都不一定成立 d. a~b一定成立
5、如果文法G是无二义的,则它的任何句子α 。
a. 最左推导和最右推导对应的语法树必定相同
b. 最左推导和最右推导对应的语法树可能不同
c. 最左推导和最右推导必定相同
d. 可能存在两个不同的最左推导,但它们对应的语法树相同
6、由文法的开始符经0步或多步推导产生的文法符号序列是 。
a. 短语 b.句柄 c. 句型 d. 句子
7、文法G:E→E+T|T
T→T*P|P
P→(E)|I
则句型P+T+i的句柄和最左素短语为 。
a.P+T和i b. P和P+T c. i和P+T+i d.P和T
8、设文法为:S→SA|A
A→a|b
则对句子aba,下面 是规范推导。
a. SÞSAÞSAAÞAAAÞaAAÞabAÞaba
b. SÞSAÞSAAÞAAAÞAAaÞAbaÞaba
c. SÞSAÞSAAÞSAaÞSbaÞAbaÞaba
d. SÞSAÞSaÞSAaÞSbaÞAbaÞaba
9、文法G:S→b|∧(T)
T→T,S|S
则FIRSTVT(T) 。
a. {b,∧,(} b. {b,∧,)} c.{b,∧,(,,} d.{b,∧,),,}
10、产生正规语言的文法为 。
a. 0型 b. 1型 c. 2型 d. 3型
11、采用自上而下分析,必须 。
a. 消除左递归 b. 消除右递归 c. 消除回溯 d. 提取公共左因子
12、在规范归约中,用 来刻画可归约串。
a. 直接短语 b. 句柄 c. 最左素短语 d. 素短语
13、有文法G:E→E*T|T
T→T+i|i
句子1+2*8+6按该文法G归约,其值为 。
a. 23 B. 42 c. 30 d. 17
14、规范归约指 。
a. 最左推导的逆过程 b. 最右推导的逆过程
c. 规范推导 d. 最左归约的逆过程
[解答]
1、选c。
2、选a。
3、选c。
4、虽然a与b没有优先关系,但构造优先函数后,a与b就一定存在优先关系了。所以,由f(a)>g)(b)或f(a)<g(b)并不能判定原来的a与b之间是否存在优先关系:故选c。
5、如果文法G无二义性,则最左推导是先生长右边的枝叶:对于d,如果有两个不同的是了左推导,则必然有二义性。故选a。
6、选c。
7、由图2-8-1的语法树和优先关系可以看出应选b。

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、下面哪些说法是错误的 。
a. 有向图是一个状态转换图 b. 状态转换图是一个有向图
c.有向图是一个DFA d.DFA可以用状态转换图表示
2、对无二义性文法来说,一棵语法树往往代表了 。
a. 多种推导过程 b. 多种最左推导过程 c.一种最左推导过程
d.仅一种推导过程 e.一种最左推导过程
3、如果文法G存在一个句子,满足下列条件 之一时,则称该文法是二义文法。
a. 该句子的最左推导与最右推导相同
b. 该句子有两个不同的最左推导
c. 该句子有两棵不同的最右推导
d. 该句子有两棵不同的语法树
e.该句子的语法树只有一个
4、有一文法G:S→AB
A→aAb|ε
B→cBd|ε
它不产生下面 集合。
a. {anbmcndm|n,m≥0} b. {anbncmdm|n,m>0}
c. {anbmcmdn|n,m≥0} d. {anbncmdm|n,m≥0}
e. {anbncndn|n≥0}
5、自下而上的语法分析中,应从 开始分析。
a. 句型 b. 句子 c. 以单词为单位的程序
d. 文法的开始符 e. 句柄
6、对正规文法描述的语言,以下 有能力描述它。
a.0型文法 b.1型文法 c.上下文无关文法 d.右线性文法 e.左线性文法
解答 1、e、a、c 2、a、c、e 3、b、c、d 4、a、c 5、b、c 6、a、b、c、d、e
三、填空题
1、文法中的终结符和非终结符的交集是 。词法分析器交给语法分析器的文法符号一定是 ,它一定只出现在产生式的 部。
2、最左推导是指每次都对句型中的 非终结符进行扩展。
3、在语法分析中,最常见的两种方法一定是 分析法,另一是 分析法。
4、采用 语法分析时,必须消除文法的左递归。
5、 树代表推导过程, 树代表归约过程。
6、自下而上分析法采用 、归约、错误处理、 等四种操作。
7、Chomsky把文法分为 种类型,编译器构造中采用 和 文法,它们分别产生 和 语言,并分别用 和 自动机识别所产生的语言。
解答 1、空集 终结符 右
2、最左
3、自上而上 自下而上
4、自上而上
5、语法 分析
6、移进 接受
7、4 2 型 3型 上下文无关语言 正规语言 下推自动机 有限
四、判断题
1、文法 S→aS|bR|ε描述的语言是(a|bc)* ( )
R→cS
2、在自下而上的语法分析中,语法树与分析树一定相同。 ( )
3、二义文法不是上下文无关文法。 ( )
4、语法分析时必须先消除文法中的左递归。 ( )
5、规范归约和规范推导是互逆的两个过程。 ( )
6、一个文法所有句型的集合形成该文法所能接受的语言。 ( )
解答 1、对 2、错 3、错 4、错 5、错 6、错
五、简答题
1、句柄 2、素短语 3、语法树 4、归约 5、推导
[解答]
1、句柄:一个句型的最左直接短语称为该句型的句柄。
2、素短语:至少含有一个终结符的素短语,并且除它自身之外不再含任何更小的素短语。
3、语法树:满足下面4个条件的树称之为文法G[S]的一棵语法树。
①每一终结均有一标记,此标记为VN∪VT中的一个符号;
②树的根结点以文法G[S]的开始符S标记;
③若一结点至少有一个直接后继,则此结点上的标记为VN中的一个符号;
④若一个以A为标记的结点有K个直接后继,且按从左至右的顺序,这些结点的标记分别为X1,X2,…,XK,则A→X1,X2,…,XK,必然是G的一个产生式。
4、归约:我们称αγβ直接归约出αAβ,仅当A→γ 是一个产生式,且α、β∈(VN∪VT)*。归约过程就是从输入串开始,反复用产生式右部的符号替换成产生式左部符号,直至文法开始符。
5、推导:我们称αAβ直接推出αγβ,即αAβÞαγβ,仅当A→ γ 是一个产生式,且α、β∈(VN∪VT)*。如果α1Þα2Þ…Þαn,则我们称这个序列是从α1至α2的一个推导。若存在一个从α1αn的推导,则称α1可推导出αn。推导是归约的逆过程。
六、问答题
1、给出上下文无关文法的定义。
[解答]
一个上下文无关文法G是一个四元式(VT,VN,S, P),其中:
●VT是一个非空有限集,它的每个元素称为终结符号;
●VN是一个非空有限集,它的每个元素称为非终结符号,VT∩VN=Φ;
●S是一个非终结符号,称为开始符号;
●P是一个产生式集合(有限),每个产生式的形式是P→α,其中,P∈VN,
α∈(VT∪VN)*。开始符号S至少必须在某个产生式的左部出现一次。
2、文法G[S]:
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc
(1)它是Chomsky哪一型文法?
(2)它生成的语言是什么?
[解答]
(1)由于产生式左部存在终结符号,且所有产生式左部符号的长度均小于等于产生式右部的符号长度,所以文法G[S]是Chomsky1型文法,即上下文有关文法。
(2)按产生式出现的顺序规定优先级由高到低(否则无法推出句子),我们可以得到:
SÞabQÞabc
SÞaSPQÞaabQPQÞaabPQQÞaabbQQÞaabbcQÞaabbcc
SÞaSPQÞaaSPQPQÞaaabQPQPQÞaaabPQQPQÞaaabPQPQQÞaaaPPQQQÞ
aaabbPqqqÞaaabbQQQÞaaabbbcQQÞaaabbbccQÞaaabbbccc
……
于是得到文法G[S]生成的语言L={anbncn|n≥1}
3、按指定类型,给出语言的文法。
L={aibj|j>i≥1}的上下文无关文法。
【解答】
(1)由L={aibj|j>i≥1}知,所求该语言对应的上下文无关文法首先应有S→aSb型产生式,以保证b的个数不少于a的个数;其次,还需有S→Sb或S→bS型的产生式,用以保证b的个数多于a的个数;也即所求上下文无关文法G[S]为:
G[S]:S→aSb|Sb|b
4、有文法G:S→aAcB|Bd
A→AaB|c
B→bScA|b
(1)试求句型aAaBcbbdcc和aAcbBdcc的句柄;
(2)写出句子acabcbbdcc的最左推导过程。
【解答】(1)分别画出对应两句型的语法树,如图2-8-2所示
句柄:AaB Bd

图2-8-2 语法树
(2)句子acabcbbdcc的最左推导如下:
SÞaAcBÞaAaBcBÞacaBcBÞacabcBÞacabcbScAÞacabcbBdcA
ÞacabcbbdcAÞacabcbbdcc
5、对于文法G[S]:
S→(L)|aS|a L→L, S|S
(1)画出句型(S,(a))的语法树。(2)写出上述句型的所有短语、直接短语、句柄和素短语。
【解答】
(1)句型(S,(a))的语法树如图2-8-3所示

(2)由图2-8-3可知:
①短语:S、a、(a)、S,(a)、(S,(a));
②直接短语:a、S;
③句柄:S;
④素短语:素短语可由图2-8-3中相邻终结符之间的优先关系求得,即;

因此素短语为a。
6、考虑文法G[T]:
T→T*F|F
F→F↑P|P
P→(T)|i
证明T*P↑(T*F)是该文法的一个句型,并指出直接短语和句柄。
【解答】
首先构造T*P↑(T*F)的语法树如图2-8-4所示。

由图2-8-4可知,T*P↑(T*F)是文法G[T]的一个句型。
直接短语有两个,即P和T*F;句柄为P。

一、单项选择题
1、词法分析所依据的是 。
a. 语义规则 b. 构词规则 c. 语法规则 d. 等价变换规则
2、词法分析器的输出结果是 。
a. 单词的种别编码 b. 单词在符号表中的位置
c. 单词的种别编码和自身值 d. 单词自身值
3、正规式M1和M2等价是指 。
a. M1和M2的状态数相等 b. M1和M2的有向弧条数相等
c. M1和M2所识别的语言集相等 d. M1和M2状态数和有向弧条数相等
4、状态转换图(见图3-6-1)接受的字集为 。

a. 以 0开头的二进制数组成的集合 b. 以0结尾的二进制数组成的集合
c. 含奇数个0的二进制数组成的集合 d. 含偶数个0的二进制数组成的集合
5、词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此, 。
a. 词法分析器应作为独立的一遍 b. 词法分析器作为子程序较好
c. 词法分析器分解为多个过程,由语法分析器选择使用 d. 词法分析器并不作为一个独立的阶段
解答 1、b 2、c 3、c 4、d 5、b
二、多项选择题
1、在词法分析中,能识别出 。
a. 基本字 b. 四元式 c. 运算符
d. 逆波兰式 e. 常数
2、令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为 。
a. b(ab)* b. b(ab)+ c.(ba)*b
d. (ba)+b e. b(a|b)
解答 1、a、c、e 2、a、b、d
三、填空题
1、确定有限自动机DFA是 的一个特例。
2、若二个正规式所表示的 相同,则认为二者是等价的。
3、一个字集是正规的,当且仅当它可由 所 。
解答 1、NFA 2、正规集 3、DFA(NFA)所识别
四、判断题
1、一个有限状态自动机中,有且仅有一个唯一终态。 ( )
2、设r和s分别是正规式,则有L(r|s)=L(r)|L(s)。 ( )
3、自动机M和M′的状态数不同,则二者必不等价。 ( )
4、确定的自动机以及不确定的自动机都能正确地识别正规集。 ( )
5、对任意一个右线性文法G,都存在一个NFA M,满足L(G)=L(M)。 ( )
6、对任意一个右线性文法G,都存在一个DFA M,满足L(G)=L(M)。 ( )
7、对任何正规表达式e,都存在一个NFA M,满足L(G)=L(e)。 ( )
8、对任何正规表达式e,都存在一个DFA M,满足L(G)=L(e)。 ( )
解答 1 、2、3、错 4、5、6、7、8、正确
五、基本题
1、设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,S0,Z),由f的定义可知f(x,a)、f(y,b)均为多值函数,所以是一非确定有限自动机,先画出NFA M相应的状态图,如图3-6-2所示。

用子集法构造状态转换矩阵表3-6-3所示。
I Ia Ib
{x} {x,y} {y}
{y} — {x,y}
{x,y} {x,y} {x,y}
将转换矩阵中的所有子集重新命名而形成表3-6-4所示的状态转换矩阵。
表3-6-4 状态转换矩阵
a b
0 2 1
1 — 2
2 2 2
即得到M′=({0,1,2}, {a,b}, f,0, {1,2}),其状态转换图如图3-6-5所示。

将图3-6-5的DFA M′最小化。首先,将M′的状态分成终态组{1,2}与非终态组{0};其次,考察{1,2}。由于{1,2}a={1,2}b={2}⊂{1,2},所以不再将其划分了,也即整个划分只有两组{0},{1,2}:令状态1代表{1,2},即把原来到达2的弧都导向1,并删除状态2。最后,得到如图3-6-6所示化简DFA M′。

2、对给定正规式b*(d|ad)(b|ab)+,构造其NFA M;
解答:首先用A+=AA*改造正规式得:b*(d|ad)(b|ab)(b|ab)*;其次,构造该正规式的NFA M,如图3-6-7所示。
求采纳为满意回答。

㈣ c(a/g/w)ll选择哪个

热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP
Copyright © 1999-2020, CSDN.NET, All Rights Reserved

打开APP

c语言lr文法还是ll文法,编译原理复习题 转载
2021-05-20 05:05:24

Tim Pan

码龄4年

关注
一、单项选择题 概述部分

1.构造编译程序应掌握 。D A. 源程序 B. 目标语言 C. 编译方法 D. 以上三项都是 2.编译程序绝大多数时间花在 上。D

A. 出错处理

B. 词法分析

C. 目标代码生成

D. 表格管理 3.编译程序是对 。D

A. 汇编程序的翻译

B. 高级语言程序的解释执行

C. 机器语言的执行

D. 高级语言的翻译 4. 将编译程序分成若干“遍”,是为了 。B

A. 提高程序的执行效率

B. 使程序的结构更为清晰 C 利用有限的机器内存并提高机器的执行效率 D. 利用有限的机器内存但降低了机器的执行效率

词法分析部分

1.DFA M(见图1-1)接受的字集为 。D A. 以0开头的二进制数组成的集合

B. 以0结尾的二进制数组成的集合

.png

C. 含奇数个0的二进制数组成的集合

D. 含偶数个0的二进制数组成的集合

2.词法分析器的输出结果是 。C

A. 单词的种别编码

B. 单词在符号表中的位置

C. 单词的种别编码和自身值

D. 单词自身值 3.正规式M1和M2等价是指 。C A. M1和M2的状态数相等 B. M1和M2的有向边条数相等 C. M1和M2所识别的语言集相等 D. M1和M2状态数和有向边条数相等 4.词法分析器的加工对象是 。 C A .中间代码 B .单词 C .源程序 D .元程序 5.同正规式(a|b )*等价的正规式为 。D A .(a|b)+ B .a*|b* C .(ab)* D .(a*|b*)+ 6. 两个DFA 等价是指: 。 D A. 这两个DFA 的状态数相同

B. 这两个DFA 的状态数和有向弧条数都相等

C. 这两个DFA 的有向弧条数相等

D. 这两个DFA 接受的语言相同

7. 下列符号串不可以由符号集S ={a,b}上的正闭包运算产生的是:(A ) A. ε B. a C. aa D. ab 8.称有限自动机A1和A2等价是指________。D A .A1和A2都是定义在一个字母表上的有限自动机 B .A1和A2状态数和有向边数相等

图1-1

1

相关资源:编译原理赋值语句的翻译LL文法LR文法简单优先法-专业指导文档类...
文章知识点与官方知识档案匹配
C技能树首页概览
110422 人正在系统学习中
打开CSDN APP,看更多技术内容

编译原理五 LR(1)分析法【C语言实现】_wangkay88的博客
1、使用 LR 的优点: (1)LR 分析器能够构造来识别所有能用上下文无关文法写的程序设计语言的结构。 (2)LR 分析方法是已知的最一般的无回溯移进-归约方法,它能够和其他移进-归约方法 一样有效地实现。 (3)LR 方法能分析的文法...
lr参数与C语言函数参数的区别_weixin_30254435的博客
LR参数是lr自己封装的一个钟对象, LR参数的表达方式:{ParamName}
编译原理习题——第2章 文法和语言试卷
第2章 文法和语言试卷 1. 文法:G:S→xSx|y所识别的语言是(D)。 A. xyx B. (xyx)* C.x*yx* D. xnyxn(n≥0) 2. 给定文法A→bA|ca,为该文法句子的是(C)。 A. bba B. cab C. bca D. cba 3. 文法G产生的(D)的全体是该文法描述的语言。 A. 句型 B. 终结符集 C. 非终结符集 D. 句子 4. 若文法G...
继续访问
编译原理习题(含答案)——2程序设计语言及其文法——哈工大陈鄞配套版本
程序设计语言及其文法1 文法:G:S→xSx | y所识别的语言是( )。 2 给定文法A→bA|ca,为该文法句子的是( )。A. bbaB. cabC. bcaD. Cba 3 设有文法G[S]:S->S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有( )。A. ab0B. a0b01C. a0b0aD. bc10 4 文法G产生的( )的全体是该文法描述的语言。A. ...
继续访问
c语言lr分析器的设计与实现_[源码和文档分享]基于LR分析法的简单分析法...
通过设计、编制、调试一个简单计算器程序,加深对语法及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。 二、课程设计内容及步骤 本次课程设计需要使用 LR 分析法完成简单计算器的设计,其中算术表达式的文法如下: ...
C语言实现编译原理的LR分析法,编译原理LR(0)分析器(C语言).pdf
1LR 分析法 LR LR “ 分析法是一种自底向上进行的规范规约的语法分析方法, 指 自左向 右扫描和自底向上进行归约”。LR 分析法的一个主要缺点是,若用手工构造分析 LR 器则工作量相当大,因此必须求助于自动产生 分析器的产生器。
编译原理 第三章 词法分析
1、词法分析器的输出结果是单词的种类编码和自身值 2、词法分析器不能发现括号不匹配 3、不存在语言能被确定的有穷自动机识别但不能用正则表达式表示 4、两个有穷自动机等价实质它们的所识别的语言相等 5、词法分析器用于识别单词 6、正则表达式R1和R2等价是指R1和R2代表同一正则集 7、已知文法G[S]:S->A1, A->A1|S0|0,与G等价的正规式是0(1|10)^1 8、与(a...
继续访问
【编译原理-练习题-1】概述部分与词法分析部分选择,填空,判断,多选题
一、单项选择题 1.构造编译程序应掌握 (D ) 。 a. 源程序 b. 目标语言 c. 编译方法 d. 以上三项都是 2.编译程序绝大多数时间花在 (D) 上。 a. 出错处理 b. 词法分析 c. 目标代码生成 d. 表格管理 3.DFA M(见图1-1)接受的字集为(D ) 。 a. 以0开头的二进制数组成的集合 b. 以0结尾的二进制数组成的集合 ...
继续访问
LR中用C语言比较两个字符串变量_花露丝雨的博客
6.lr_save_string( "We can see the string:nancy","string1" ); 7.lr_save_string( "We can see the string:nancy","string2" ); 8.lr_output_message("the string1 is %s.",lr_eval_string("{string1}")); ...
c语言字符串变量的比较,LR中用C语言比较两个字符串变量.doc_梦符佳月...
LR中用C语言比较两个字符串变量 Zee的早期文档.一:以下脚本,定义两个一样的字符数组,对比后,打印出result的值: vuser_init() { int result; ? ???char string1[] = "We can see the string:zee"; ...
最新发布 编译原理刷题(个人向)
编译原理刷题
继续访问
【编译原理】课后习题
1.构造编译程序应掌握:源程序、目标语言、编译方法 2.编译程序绝大多数时间花在表格管理上 3. 4.一个程序是正确的,包括两层含义:一是书写正确;二是含义正确 (合乎语法规则、合乎语义规则) 5.描述高级语言语法常用的方法有语法树、BNF范式、扩充的BNF范式等 6.程序语言一般可以分为低级语言和高级语言两大类,其中低级语言通常又称为面向机器的语言。面向机器语言指的是特定计算机系统所...
继续访问
C语言实现编译原理的LR分析法,实验三编译原理综合实验报告——(LR...
注意:本例是利用LR(0)分析来实现的语法分析,同学在写实验报告的时候,在结果分析这一块可以选用课堂讲过的LR(0)文法来说明验证结果即可。 同时附上你所选用的文法对应的LR(0)分析表。
编译原理总结,看这一篇就够了!_LeeDuo.的博客_编译原理
1.词法分析:对源程序的字符串进行扫描和分解,识别出每个单词符号。 2.语法分析:根据语言的语法规则,把单词符号分解成各类语法单位。 3.语义分析与中间代码生成:对各种语法范畴进行静态语义检查,若正确则进行中间代码翻译。 4.代码优化:...
C语言LR(1)文法
用C语言编写,对一个LR(1)文法分析,文法为:实现两个数的加减乘除四则运算。并能得出计算结果。
热门推荐 编译原理习题(含答案)——3词法分析——哈工大陈鄞配套版本
词法分析1 词法分析器的输出结果是( )。A. 单词自身值B. 单词在符号表中的位置C. 单词的种别编码 D. 单词的种别编码和自身值2 词法分析器不能( )。A. 识别出数值常量B. 过滤源程序中的注释C. 扫描源程序并识别记号D. 发现括号不匹配 3 ( )这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。A. 存在B. 不存在C. 无法判定是否存在D. 以上答案都不对 4 ...
继续访问
C--编译器:C--编译器,实现LL(1)\ LR(0)\ SLR \ LR(1)并生成语义分析和MIPS
实现了自制的C--语言的一遍扫描编译,包括词法分析,LR(1)语法分析,属性文法+中间代码生成,MIPS编译生成编译脚本由python实现,兼容python2.7与3.7,图形界面由WPF实现,使用了IronPython进行脚本执行 支持以下特性: 一种基本类型int 赋值表达式,循环/选择/判断/跳出语句 函数定义与函数调用 未实现: 浮点数,字符,字符串 斑点 错误检查
编译原理之LR(0)分析算法的c实现
LR(0)分析器的构造算法如下: 对一个文法构造了它的LR(0)分析表后就可以在LR分析器的总控程序(驱动程序)控制下对输入串进行分析,即根据输入串的当前符号和分析栈的栈顶状态查找分析表应采取的动作,对状态栈和符号栈进行相应的操作即移进、归约、接受或报错。具体说明如下: (1)若ACTION[S,a]=Sj,a为终结符,则把a移入符号栈,j移入状态栈; (2)若ACTION[S,a]=rj,
继续访问
编译原理第一章自测题
第一章 高级语言与编译程序概述 一、单项选择题 1.将编译程序分成若干个“遍”是为了____ 。 A. 提高程序的执行效率 B. 使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D. 利用有限的机器内存但降低了机器的执行效率 2.构造编译程序应掌握 ____ 。 A. 源程序 B. 目标语言 C. 编译方法 D. 以上三项都是 3.编译程序绝大多数时间花在 ____ 上。 A. 出错处理 B. 词法分析 C. 目标代码生成 D. 管理表格
C语言语法分析程序(编译原理:LR)
北邮大三编译原理课程序 注释很详细
用c++实现LR语法分析器
通过LR分析表及三个栈形成对输入表达式的判断! 。
c语言lr文法还是ll文法,编译原理第五章语法分析课后题
(先补到这里,后面如果有需要的话,垃圾博主还会回来继续更的。。。)5.1 递归子程序法属于()语法分析方法A. 自顶向下B. 自底向上C. 自左向右D. 自右向左5.2 采用确定的自顶向下分析时,必须()A. 消除左递归B. 消除右递归C. 避免回溯D. 提取左公因子5.3 自上而下语法分析的主要分析动作是A. 推导B. 移进C. 归约D. 匹配5.4 一个字符属于FOLLOW(S),这个字符的含...
继续访问
编译原理,C语言实现LR(0)分析(扩展文法的生成、项目集规范簇的生成、ACTION GOTO表的生成、句子的分析)
编译原理,C语言实现LR(0)分析(扩展文法的生成、项目集规范簇的生成、ACTION GOTO表的生成、句子的分析) (1)根据提示输入文法的个数 (2)输入文法 (3)扩展文法的生成、项目集规范簇的生成、ACTION GOTO表的生成 (3)分析句子 (4)生成分析过程 C语言实现LR(0)分析源代码
继续访问

编译程序基本原理
编译程序和解释程序 人们利用高级语言与计算机进行交互, 但计算机仍然只能理解和执行由 0, 1序列构成的机器语言, 因此高级程序设计语言需要翻译, 担负这一任务的程序称为"语言处理程序", 由于应用的不同, 语言之间的翻译也是多种多样的. 大致可分为 汇编程序、解释程序和编译程序. 用某种高级语言或汇编语言编写的程序称为 源程序, 源程序不能直接在计算机上执行. 如果源程序是用汇编语言写的, ...
继续访问
LR脚本用户自定义C语言函数
LR脚本实战:用户自定义C语言函数 Loadrunner可以使用标准C语言的函数,因此我们可以在脚本中编写自己的函数用于调用,把脚本结构化,更好的进行重用。 先看一个例子: Action() { int i,j; j = 1; for (i=0;i<10;i++) { lr_message("i+j=%d",sum(i,j)); j++; } ...
继续访问
编译原理,第一章绪论
编译过程和编译程序结构 五个阶段: 词法分析 语法分析 语义分析和中间代码生成 优化 目标代码生成 编译程序的开发 自编译:用某种高级语言编写自己的编译程序称为自编译, 交叉编译:用A机器上的编译程序来产生可在B机器上运行的目标代码 自展:首先确定一个非常简单的核心语言L0,然后用机器语言或者汇编语言写出它的编译程序T0,再把语言L0扩充到L1,用L0编写L1的编译程序T1,这样不断扩展下去...
继续访问

c语言是 ll文法和lr文法哪个好
c语言lr文法还是ll文法
写评论

评论

收藏

点赞



分享

㈤ 计算机科学与技术,大二了,我该学些什么呢,现在只会写几行代码

我不是大神,事实上我还是大一呢。我已经学了C,正在学C++,我也是一头雾水。再好多看些相关书籍。我给你推荐些。我只看了一点就受益无穷。求采纳。
计算机经典教材
目录
1 前言
2 Mathematics (数学)
3 Data Structures & Algorithms (数据结构、算法)
4 Compiler (编译原理)
5 Operating System (操作系统)
6 Database (数据库)
7 C (C 语言)
8 C++ (C++ 语言)
9 Object-Oriented (面向对象)
10 Software Engineering (软件工程)
11 UNIX Programming (UNIX编程)
12 UNIX Administration (UNIX系统管理)
13 Networks (网络)
14 Windows Programming (Windows 编程)
15 Other (其它)

前言

推荐原则:
宁缺勿滥,决不混进糟粕 (好书不一定对所有人都合适,但对于它的目标读者群来说,一定是好书)。
选书原则:
有国外的,不看国产的
有原版的,不看翻译的
看大师的作品
看书原则:
不要看C、C++、java……今天听说C好,就跑去学C。明天听说java好,就跑去学java,最后你什么也学不到。因为不管什么语言,永远不要忘记语言的本质。语言只是一种工具,它的作用就是完成你的工作。不管把
C 的语法学得如何透彻,也不管把 C 的
trick用的如何精妙,这都不能表示你会编程。要学会如何分析问题,如何设计程序,如何用一种具体的语言来实现。如果你只会做最后一步,你只是一个编码者(coder),还不是一个程序员(programmer)。做一个programmer,不要做coder。总之,不要为了学语言而去学语言(除非你是个语言学家)。

不要放弃对基础知识的学习。所谓基础知识,一般都有一个特点,那就是:它们可能看起来没用,但如果你忽视它们的话,总有一天你会后悔莫及。所以,如果不想以后再后悔的话,就在今天多花点时间。

不管学什么东西,学之前先弄明白自己要学的是什么东西,它有什么用,在你已经学和以后的发展方向中,它处于什么位值。如果这些都不明白,就好比在茫茫的丛林里面四处乱撞,就算能出去,也一定会走很多弯路。

对于软件工程之类的东西,不象 C
语言有着严格的标准,最好的办法就是兼收并蓄,能看的都看,然后(最重要的)在此之上形成自己的思想(不然就什么都白看了)。
尽信书不如无书。书里写的只不过是写书的人认为正确的观点而已。学习前人的知识和经验,在此基础上形成自己的知识结构、观点和思维方式,才是学习的真正目的。
一。Mathematics (数学)

书名(英文):Discrete Mathematics and Its Applications (Fifth Edition)
书名(中文):离散数学及其应用 (第五版)
原作者:Kenneth H.Rosen

书名(英文):Concrete Mathematics : A Foundation for Computer Science
(Second Edition)
书名(中文):具体数学:计算机科学基础 (第2版)
原作者:Ronald L. Graham / Donald E. Knuth / Oren Patashnik

二。Data Structures & Algorithms (数据结构、算法)
书名(英文):Data Structures and Algorithm Analysis in C, Second Edition
书名(中文):数据结构与算法分析--C语言描述 (第二版)
原作者:Mark Allen Weiss
大凡国外的数据结构教科书,都有一个共同的特点,就是他们的第一章都不是讲的数据结构,而是软件工程的基本原则。我个人认为这是十分必要的,特别是对于大
多数没有接触过程序设计的同学来说,在数据结构这个可以说是第一次接触程序设计的课程中能学习到基本的软件工程原则,对于以后的学习是十分有好处的。写一
个乱七八糟的程序出来还不如什么都不写。在我看来,这本书有两个优点:一:将软件工程的基本原则贯穿全书,二:简单,容易理解。对于初学者,这本书无疑是
非常合适的。mufasa

书名(英文):Data Structures & Program Design In C (Second Edition)
书名(中文):数据结构与程序设计 C 语言描述 (第二版)
原作者:Robert Kruse / C.L. Tondo / Bruce Leung

书名(英文):Data Structures with C++ Using STL (Second Edition)
书名(中文):数据结构C++语言描述描述—应用标准模版库 (第二版)
原作者:William Ford, William Topp

书名(英文):Introction to Algorithms (Second Edition)
书名(中文):算法导论 (第二版)
原作者:Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest /
Clifford Stein

书名(英文):The Art of Computer Programming, Volume 1 : Fundamental
Algorithms (Third Edition)
书名(中文):计算机程序设计艺术 第1卷 基本算法 (第3版)
原作者:Donald E. Knuth

书名(英文):The Art of Computer Programming, Volume 2 : Seminumerical
Algorithms (Third Edition)
书名(中文):计算机程序设计艺术 第2卷 半数值算法 (第3版)
原作者:Donald E. Knuth

书名(英文):The Art of Computer Programming, Volume 3 : Sorting and
Searching (Second Edition)
书名(中文):计算机程序设计艺术 第3卷 排序和查找 (第2版)
原作者:Donald E. Knuth

三。Compiler (编译原理)
书名(英文):Compilers: Principles, Techniques, and Tools
书名(中文):编译原理、技术与工具
原作者:Alfred V. Aho / Ravi Sethi / Jeffrey D. Ullman

书名(英文):Advanced Compiler Design and Implementation
书名(中文):高级编译器设计与实现
原作者:Steven S. Muchnic

书名(英文):Modern Compiler Implementation in C
书名(中文):现代编译原理--C语言描述
原作者:Andrew W.Appel / Maia Ginsburg

四。Operating System (操作系统)
书名(英文):Operating System Concepts (Sixth Edition)
书名(中文):操作系统概念 (第六版)
原作者:Abraham Silberschatz / Peter Baer Galvin / Greg Gagne

书名(英文):Operating Systems : Design and Implementation (Second
Edition)
书名(中文):操作系统:设计及实现 (第二版)
原作者:Andrew S. Tanenbaum / Albert S. Woodhull
翻译者:王鹏、尤晋元、朱鹏、敖青云

书名(英文):The Design and Implementation of the 4.4BSD Operating System
书名(中文):4.4BSD操作系统设计与实现
原作者:Marshall Kirk McKusick / Keith Bostic / Michael J. Karels / John
S.Quarterman

书名(英文):The Design and Implementation of the FreeBSD Operating System
书名(中文):FreeBSD操作系统设计与实现
原作者:Marshall Kirk McKusick / George V. Neville-Neil
翻译者:张辉

书名(英文):The Design of The UNIX Operating System
书名(中文):UNIX操作系统设计
原作者:Maurice J.Bach

书名(英文):UNIX Internals : The New Frontiers
书名(中文):UNIX系统内幕
原作者:Uresh Vahalia

书名(英文):UNIX Systems for Modern Architectures
书名(中文):现代体系结构上的UNIX系统--内核程序员的SMP和Caching技术
原作者:Curt Schimmel
翻译者:张辉

书名(英文):Lions' Commentary on UNIX 6th Edition with Source Code
书名(中文):莱昂氏UNIX源代码分析
原作者:John Lions

书名(英文):Distributed Systems : Principles and Paradigms
书名(中文):分布式系统:原理与范例
原作者:Andrew S.Tanenbaum / Maarten van Steen

五.Database (数据库)

书名(英文):An Introction to Database Systems, Eighth Edition
书名(中文):数据库系统导论 (第八版)
原作者:C. J.Date

书名(英文):Database System Concepts, Fourth Edition
书名(中文):数据库系统概念 (第四版)
原作者:Abraham Silberschat / Henry F.Korth / S.Sudarshan

六。C (C 语
书名(英文):The C Programming Language, Second Edition
书名(中文):C程序设计语言,第二版
原作者:Brian W. Kernighan / Dennis Ritchie

书名(英文):The Art and Science of C : A Library-Based Introction to
Computer Science
书名(中文):C语言的科学和艺术
原作者:Eric S.Roberts

书名(英文):Programming Abstractions in C : A Second Course in Computer
Science
书名(中文):C程序设计的抽象思维
原作者:Eric S.Roberts

书名(英文):Expert C Programming
书名(中文):C专家编程
原作者:Andrew Koenig

书名(英文):C Traps and Pitfalls
书名(中文):C陷阱与缺陷
原作者:Andrew Koenig

七。C++ (C++ 语言)

书名(英文):C++ Primer, Third Edition & Forth Edition
书名(中文):C++ Primer (第三版、第四版)
原作者:Stanley B.Lippman / Josée LaJoie / Barbara E.Moo
翻译者:李师贤、蒋爱军、梅晓勇、林瑛

平心而论,这本书的第三版并不适合入门,但是第四版适合。所以第四版的出现并不意味着第三版就失去了其价值。在我看来最好的办法就是买一本第四版的中文版和一本第三版的英文版。中文版用来入门,英文版用来作参考手册。mufasa

书名(英文):The C++ Programming Language, Special Edition
书名(中文):C++ 程序设计语言 (特别版)
原作者:Bjarne Stroustrup

书名(英文):Inside the C++ Object Model
书名(中文):深度探索 C++ 对象模型
原作者:Stanley B. Lippman

书名(英文):Effective C++, Thrid Edition
书名(中文):Effective C++ (第三版)
原作者:Scott Meyers

书名(英文):More Effective C++
书名(中文):More Effective C++
原作者:Scott Meyers
翻译者:侯捷

书名(英文):Thinking in C++, Second Edition
书名(中文):C++编程思想 (第二版)
原作者:Bruce Eckel

书名(英文):Thinking in C++, Volume 2 : Practical Programming
书名(中文):C++编程思想 第2卷:实用编程技术
原作者:Bruce Eckel / Chuck Alison

书名(英文):Ruminations on C++ : A Decade of Programming Insight and
Experience
书名(中文):C++沉思录
原作者:Andrew Koenig / Barbara Moo

八。Object-Oriented (面向对象)
书名(英文):Object-Oriented Analysis and Design with Applications, Second
Edition
书名(中文):面向对象分析与设计 (第二版)
原作者:Grady Booch

书名(英文):Object-Oriented Modeling and Design with UML,Second Edition
书名(中文):UML面向对象建模与设计 (第二版)
原作者:Michael Blaha / James Rumbaugh
翻译者:车皓阳、杨眉

书名(英文):Object-Oriented Software Construction (Second Edition)
书名(中文):面向对象软件构造 (第二版)
原作者:Bertrand Meyer

书名(英文):Design Patterns : Elements of Reusable Object-Oriented
Software
书名(中文):设计模式:可复用面向对象软件的基础
原作者:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides

九。Software Engineering (软件工程)
书名(英文):Software Engineering (7th Edition)
书名(中文):软件工程 (第七版)
原作者:Ian Sommerville

书名(英文):Software Engineering : A Practitioner's Approach (Fifth
Edition)
书名(中文):软件工程:实践者之路 (第5版)
原作者:Roger S. Pressman

书名(英文):Software Engineering : Theory and Practice (Second Edition)
书名(中文):软件工程:理论与实践 (第二版)
原作者:Shari Lawrence Pfleeger

书名(英文):The Mythical Man-Month
书名(中文):人月神话
原作者:Frederick Phillips Brooks

书名(英文):Software Architecture : Perspectives On an Emerging Emerging
Discipline
书名(中文):软件体系结构:一门初露端倪学科的展望
原作者:Mary Shaw / David Garlan

十。UNIX Programming (UNIX编程)

书名(英文):Advanced Programming in the UNIX Environment, Second Edition
书名(中文):UNIX 环境高级编程 (第二版)
原作者:W.Richard Stevens / Stephen A.Rago
翻译者:尤晋元、张亚英、戚正伟

书名(英文):The UNIX Programming Environment
书名(中文):UNIX 编程环境
原作者:Brianw. Kernighan

书名(英文):UNIX Network Programming, Volume 1 : The Sockets Networking
API (Third Edition)
书名(中文):UNIX 网络编程 卷1:套接字联网API (第三版)
原作者:W. Richard Stevens / Bill Fenner / Andrew M. Rudoff

书名(英文):UNIX Network Programming Volume 2 : Interprocess
Communications (Second Edition)
书名(中文):UNIX 网络编程 卷2:进程间通信 (第2版)
原作者:W. Richard Stevens

书名(英文):The Art of UNIX Programming
书名(中文):UNIX 程序设计艺术
原作者:Eric Raymond

UNIX Administration (UNIX系统管理)
书名(英文):UNIX System Administration Handbook (Third Edition)
书名(中文):UNIX系统管理技术手册 (第三版)
原作者:Evi Nemeth / Garth Snyder

书名(英文):Linux Administration Handbook
书名(中文):Linux系统管理技术手册
原作者:Evi Nemeth / Garth Snyder / Trent R.Hein

书名(英文):UNIX Unleashed (Fourth Edition)
书名(中文):UNIX 技术内幕 (第四版)
原作者:Robin Anderson / Andy Johnston

书名(英文):UNIX:The Textbook
书名(中文):UNIX操作系统教程
原作者:Syed Mansoor Sarwar / Robert Koretsky / Syed Aqeel Sarwar

书名(英文):Unix Backup & Recovery
书名(中文):UNIX 备份与恢复
原作者:W.Curtis Preston

十一。Networks (网络)

书名(英文):Computer Networks (Fourth Edition)
书名(中文):计算机网络 (第4版)
原作者:Andrew S. Tanenbaum

书名(英文):TCP/IP Illustrated, Volume 1 : The Protocols
书名(中文):TCP/IP 详解 卷1:协议
原作者:W. Richard Stevens

书名(英文):TCP/IP Illustrated, Volume 2 : The Implementation
书名(中文):TCP/IP详解 卷2:实现
原作者:Gary R. Wright / W. Richard Stevens

书名(英文):TCP/IP Illstrated, Volume 3 : TCP for Transactions, HTTP,
NNTP, and the UNIX Domain Protocols
书名(中文):TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议
原作者:W. Richard Stevens

书名(英文):Internetworking with TCP/IP Vol I : Principles, Protocols,
and Architecture (Third Edition)
书名(中文):TCP/IP 网络互连技术 卷1:原理、协议和体系结构 (第3版)
原作者:Douglas E. Comer

书名(英文):Internetworking with TCP/IP Vol II : Design, Implementation,
and Internals (Second Edition)
书名(中文):TCP/IP 网络互连技术 卷2:设计与实现 (第2版)
原作者:Douglas E. Comer / David L. Stevens

书名(英文):Internetworking with TCP/IP Vol III : Client-Server
Programming and Applications, BSD Socket Version (Second Edition)
书名(中文):TCP/IP 网络互连技术 卷3:客户服务器编程和应用BSD套接字版 (第2版)
原作者:Douglas E. Comer / David L. Stevens

书名(英文):Internetworking with TCP/IP Vol III : Client-Server
Programming and Applications, Windows Sockets Version
书名(中文):TCP/IP 网络互连技术 卷3:客户服务器编程和应用Windows套接字版
原作者:Douglas E. Comer / David L. Stevens

十二。Windows Programming (Windows 编程)
书名(英文):Inside Microsoft Windows 2000 (Third Edition)
书名(中文):Microsoft Windows 2000 技术内幕 (第3版)
原作者:David A.solomon Mark E.Russinovich

书名(英文):Programming Windows (Fifth Edition)
书名(中文):Windows 编程 (第5版)
原作者:Charles Petzold

书名(英文):Programming Applications for Microsoft Windows
书名(中文):Microsoft Windows 应用程序设计
原作者:Jeffrey Richter

书名(英文):Programming with Microsoft Visual C++ .NET (Sixth Edition)
书名(中文):Visual C++.NET 技术内幕 (第6版)
原作者:George Shepherd / David Kruglinski

书名(英文):Dissecting MFC
书名(中文):深入浅出MFC
原作者:侯捷

十三。Other (其它)
书名(英文):Computer Systems : A programmer' s Perspective
书名(中文):计算机系统
原作者:Randal E. Bryant / David R. O'Hallaron

书名(英文):Pattern Classification (Second Edition)
书名(中文):模式分类 (第2版)
原作者:Richard O. Duda / Peter E. Hart / David G. Stork

书名(英文):Code Complete 2
书名(中文):代码大全第2版
原作者: Steve McConnell

书名(英文):Programming Pearls (2nd Edition)
书名(中文):编程珠玑第2版
原作者: Jon Bentley
别人给我推荐的,我只看过一两本。

㈥ 编译原理一道题.有文法G(S)1、 S→(L)2、 S→ aS3、 S→ a4、...

我们也正在学编译原理,第一题不会,第二题:
先构造语法树,没法画出来,所有短语:a、(a)、S、S,(a)、(S,(a))
直接短语:a、S
句柄:a
LPP我不知道是什么

㈦ 编译原理中的正则表达式与正规表达式有什么区别

完全相同,是对regular expression的不同翻译

㈧ 优先函数是什么编译原理

构造算符优先分析表时使用的优先函数,其等价于矩阵表,但存储量小。
定义两个函数,其对应元素的值为优先值,通过循环比较各元素的两个值,每次将优先级大的值改为小的值+1,若相等则都赋为目前较大的值,循环直至结果没有变化,构造OK

㈨ 计算机科学与技术《编译原理》求解题

1、错
2、对
3、错
4、对
5、错
6、对
7、对
8、对
9、对
10、错

热点内容
新的怎么注册微信账号密码忘了怎么办 发布:2025-02-12 15:50:08 浏览:658
android代码搜索 发布:2025-02-12 15:45:36 浏览:778
矢量图算法 发布:2025-02-12 15:43:53 浏览:192
python量化投资入门 发布:2025-02-12 15:34:17 浏览:174
苹果的天气跟安卓的天气哪个准 发布:2025-02-12 15:33:37 浏览:313
西安分布式存储咨询 发布:2025-02-12 15:33:24 浏览:179
我的世界服务器怎么获得32k乱码棒 发布:2025-02-12 15:25:15 浏览:545
hadoopftp 发布:2025-02-12 15:22:23 浏览:753
ftp怎么增加 发布:2025-02-12 15:21:08 浏览:379
改装车载中控什么配置 发布:2025-02-12 15:10:00 浏览:861