相关解答一:编译原理 句型的句柄怎么求
句型aabbAb的句柄是D: bA;
S->aB->aaBB->aabSB->aabbAB->aabbAb
按照最左推导,其中的S->bA这步是最后的直接推导(即它推出的bA不再被继续往下推导),虽然B->触也是这样的,但不是最左的。
其实你根据句型画个语法树就一目了然了,句柄即是最左直接短语,首先要是直接短语(直接推导),再就是最左(按最左的话最先推出的)。
相关解答二:什么是编译原理
编译:就是将程序语言进行翻译,生成可供用户直接执行的二进制代码,即可执行文件。
任务是个比较模糊的概念,指的是操作系统中正在进行的工作,既可以指进程,也可以指程序。
程序指的是可以连续执行,并能够完成一定任务的一条条指令的集合。
进程是程序在一个数据集合上运行的过程,它是传统操作系统进行资源分配和调度的一个独立单位。
线程是一个指令执行序列,是操作系统调度的最小单位。一个或多个线程构成进程,构成一个进激的线程之间共享资源。进程和线程之间的最大区别就是线程不能独立拥有资源,进程拥有自己的资源。
相关解答三:编译原理的种别码
表示单词的类别,提供给语法分析使用。一般用整数表示,比如标识符的种别码为1,常数为2,保留字为3,运算符为4,界符为5。
相关解答四:编译原理难吗
编译原理我觉得不是最难的,或者是读得很浅所以不觉得难。在计算机基础课中最难的我觉得是操作系统,很难很重要,但是很少人会去重视,基本都是草草的上课草草的学了,不得精髓;次之算法也很难,不止是理论,实际用用也难。
国内985本科编译能教的大约是半本龙书组成的前端加一个基本的后端,不难。但是实践的工作量大。认真做一个编译器至少两三万行C++的工作量,只有半个学期的时间,压力很大。当然,compiler的可玩性不错,不那么枯燥。
相关解答五:如何学好编译原理?
对于你将来有很大前途,对于你的思维开拓有很大帮助。更主要能帮你学习很多算法已经更好更快的掌握新的语言。从长远角度看的话有帮助,但是从近的看,如果你就业啊之类的就没什么大用处了。以下是我们老师的说法:编译程序构造是计算机学科中一个非常成功的分支,也是最早获得成功的分支;编译原理蕴涵着计算机学科中解决问题的思路、抽象问题和解决问题的方法;编译原理课程的学习有利于加深对程序语言的理解,可以帮助你更加快速的掌握新的语言工具;课程中包含了很多软件技术,程序设计语言编译程序构造的基本原理和实现方法是软件的核心技术之一,这对于以后从事软件设计是很有帮助的.
如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la
相关解答六:编译原理中的左递归
1.A->Aa
2.A->Ba
B->Ab (A和B属于非终结符,a和b属于终结符)
通俗点讲:左递归就是情况1所说的“->”两边都含有同一个非终结符;
情况2所说的A->Ba中“->”后面的B 与 B->Ab中“->弗前面的B是相同的非终结符
这两种情况就叫作左递归。
相关解答七:编译原理懂的进
唉,这个中文翻译的实在差啊,这些名词概念不需要搞清楚的,建议你看下编译原理的英文版
相关解答八:编译原理试题 10分
习题一、单项选择题
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. xyxb. (xyx)*c. xnyxn(n≥0)d. x*yx*
2、文法G描述的语言L(G)是指 。
a......余下全文>>
相关解答九:句柄的编译原理
一个句型的最左直接短语称为该句型的句柄,句型的句柄是和某产生式右部匹配的子串,并且,把它规约成该产生式左部的非终结符,代表了最右推导过程的逆过程的一步。如右图,在推导过程中,S→aABe→aAde→aAbcde→abbcde,此四步的句柄分别为aABe,d,Abc,b句柄的特征:1. 它是直接短语,即某规则右部。2. 它具有最左性。注意:短语、直接短语和句柄都是针对某一句型的,特指句型中的哪些符号子串能构成短语和直接短语,离开具体的句型来谈短语、直接短语和句柄是无意义的。另外句柄的右边仅含终结符如果文法二义,那么句柄可能不唯一。
相关解答十:一个编译原理的问题
First(α) 是符号串α的开始符号集合。
也就是说,用推导的方法对α进行推导,一次次地使用产生式,用产生式右部的符号串替换一个非终结符,所有那些可能出现在第一个符号位置的终结符,就构成了开始符号集。
比如,在C语言中,对于符号串“语句”来说,标识符(赋值语句)、if(条件语句)、printf(输出函数)这些单词(终结符)都是它开始符号集合中的元素,而+(加号)、}(右花括号)不可能出现在“语句”的开头,所以不是它的开始符号集合中的元素。
Follow(A)是非终结符A的后跟符号集合。
它是指在所有可能的句型中,一切可能出现在非终结符A后面的一个终结符。
这里要特别注意是在“句型”中。
你可以自己举例,比如分析一下C语言中“表达式”后面可能跟哪些单词,它们就是非终结符“表达式”后跟符号集合中的元素。
你说的这两个集合的交集问题不存在。
因为它们针对的是不同类型的对象(一个是符号串,另一个是某个非终结符)。
实际上,在选择集合问题中,考虑的不是它们的交集,而是一个产生式右部符号串的First集跟这个产生式左端非终结符的Follow集的并集。
考虑交集的,发生在相同左部的不同产生式的选择集合之间。
百度搜索“爱华网”,专业资料,生活学习,尽在爱华网