当前位置:首页 » 编程软件 » 编译原理预测分析

编译原理预测分析

发布时间: 2025-01-30 17:34:04

① 大学最难学的课程

一 课程

1.数学.

相信很多大学生们在大学里面觉得《高等数学》、《微积分》很难,也很担心这些课程会挂科,也有不少大学生是在这大学数学这门课挂科的,可以想象一下这课程的难度了。

2.大学物理.

理科、工科大学生在大学里面必须要学大学物理的。虽说大学物理课程上的内容一般在初中、高中时期都学过了,但是经过一整个高考后暑假的荒废,以及大一一整年没学物理课程了,很多大学生们感觉大学物理很难。我那时候就是觉得大学物理难的,虽说课堂上也听课,但是感觉自己已经没有了高中时期的那股拼搏劲儿了,所以这门课学的很糟糕。

3.c语言.

大学编程课程对于大部分大学生来说是初学的,就像那些当初从初一才开始学英语就觉得英语很难一样,不少大学生对于编程里面的思维也是一头雾水的。

4.医学.

有句话叫“劝人学医,天打雷劈”,可见这门课程学起来的困难程度了。记得以前有见过一个学医的同学的书籍,一本厚厚的500多页的书是他们将要考试时候的书籍,还有更多的几十本书是他们的课本。

5.建筑学.

学建筑学的话需要画图、考证书,想想就难。

6.电力学.

电力学有大量的理论知识,还要画图,有个同学上的某电力大学,最后因为挂科太多而导致延期一年毕业。

二 社交

不少大学生们在上大学之前都是书呆子一样的人,整日就把心思放在学习上,想着如何把不懂得内容搞懂以及如何把成绩提高上去。到了大学的时候,真正的大学生在大学期间不仅要把专业课学好,而且要提高自己的社交能力。我就是那种大学以前只关注学习的人,到了大学的时候就觉得提高社交很重要,但是也感觉这个是比较难的。

三 恋爱

不少大学生在大学之前只关注学习,即使是有喜欢的人或者有人喜欢自己的话,也会尽量的压制自己的感情,而是把心思放在学习上,这样往往会错过一段最重要的谈恋爱的时机。到了大学期间比较重要的事情就是谈恋爱,因为谈恋爱可以培养照顾人得能力。

② 有关编译原理的几个问题

最左推到就是从最左边的非终结符开始替换,一个一个替换,直到替换为题目要求的。预测分析表什么的太烦了,不高兴写。你按着书上例题步骤一步一步写就可以了。给你写个第五题。

③ 编译原理试题

你发那么多条求助信息,也不给点分,大家怎么帮你啊,我来回答吧!记得给我追加分啊。
1.若源程序是用高级语言编写的,目标程序是 机器语言程序或汇编程序 ,则其翻译程序称为编译程序.
2.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。其中,词法分析器用于识别 单词 。
3.编译方式与解释方式的根本区别为是否生成目标代码。
4.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法的一个句型 。
设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。
继续做题中.......

④ 编译原理语法分析中消除左递归的问题。比如A→Ab|c中为什么说它是左递归呢,明明是A定义为Ab或者

A->Ab|c为什么是左递归,和为什么要消除左递归:

定义,就无需争辩了。至于为什么自顶向下文法不能处理左递归,解释如下:

c∈FIRST(A),所以当预测分析的栈顶出现非终结符A,而输入字符串最左边为c时,就不知道用产生式A->Ab还是A->c了。无法构造预测分析表。比如输入字符串为cbb,我们人当然容易知道是A->Ab->Abb->cbb了,但是电脑没那么聪明,如果不消除左递归,只有回溯了。

⑤ 关于LL(1)文法的编译原理题目

判断是不是LL(1),首先看候选式的首字符有没有相同的,第二判断首字符迭代进去是否会构成左递归。
如果首字符不相同,也没用左递归就说明此文法是LL(1)
M→MaH|H
H→(M)|b(M)|b
第一个产生式中存在左递归:M->MaH
第二个产生式中存在首字符相同:H->b(M) ,
H->b
怎么改呢?
对第一个产生式,消除左递归就是要变成右递归,把右边剩下的符号提到前面:
M->aHM'

M'->aHM'
对第二个产生式,提出公共因子
H->b( (M)|ε)
=>
H->bH'

H'->(M)|ε

⑥ 如何消除左递归

首先,什么叫做左递归呢? 一个左递归的语法通常有这样的形式 : A-> Aa .而自顶向下的语法分析是无法处理左递归语法的。为什么呢?无论是递归分析还是预测分析或者是LL文法分析,在碰到左递归这种语法时都会陷入死循环当中。如果我们用递归分析,那么在分析A这个非终结符号的时候就会调用functionA,functionA将A分解成A,a,然后在我们再次碰到A的时候又会调用functionA,这样便形成了无限递归。如果我们用非递归的LL文法分析,那么在我们将把A->Aa无限次地压入到栈中,即每次弹出A都会压入Aa。所以我们必须采取手段消除左递归,下面给出标准方法。
其中β1…βn 不是从A开始
其实原理在于通过转换将A的语法不从非终结符号(A本身)开始,而是从终结符号β1…βn 开始。虽然A的原语法是从A本身开始的,但是第一个符号一定是β1…βn中的一个,而不可能是任何一个α。所以我们通过一个中间变量A’来表示剩下的α,然而不要忘记由于A’ ->αA’ 这条规则,A’ -> ε 必须也存在于语法规则中,否则末尾将无法匹配完成。
但是,上述方法只适用于立即左递归,还有一种更隐蔽的非立即左递归,如 S -> Aa | b , A -> Sc | d ,我们如果用自顶向下的分析方法会陷入 S -> Aa -> Sca 这样的死循环中。当然,也有相应的解决办法。
将所有非终端符号以某个固定的顺序A_1, \ldots A_n排列
从 i = 1 到 n {
从 j = 1 到 i – 1 {
设A_j的生成规则为
A_j \rightarrow \delta_1 | \ldots | \delta_k
将所有规则 A_i \rightarrow A_j \gamma换成
A_i \rightarrow \delta_1\gamma | \ldots | \delta_k\gamma
移除A_i规则中的直接左递归
}
}
也许看上面的规则过于抽象,我们用S -> Aa | b , A -> Sc | d 来实践一下上述的方法。我们以S,A的顺序排列。则只需执行一次主程序体,且Ai 为A,Aj为S。则:
A -> Aac | bc | d, 然后再运用前面的规则消除直接左递归可得:A -> bcA’ | dA’ , A’ -> acA’ | ε
请注意,以上的解决方案是基于右递归的文法,并不是完全适用于所有的情况。我们得到的文法可能含有 ε表达式,并且可能会改变语法的结合律。解决方案就是保留左递归的语法,不用自顶向下的方式分析。

⑦ 编译原理如何判断id+id*id没有语法错误

构造LL(1)语法分析程序,任意输入一个文法符号串,并判断它是否为文法的一个句子.程序要求为该文法构造预测分析表,并按照预测分析算法对输入串进行语法分析,判别程序是否符合已知的语法规则,如果不符合(编译出错),则输出错误信息.
以你说的SQL语句为例,词法分析是将语句中的单词流识别出来,比如create table Student 词法分析是分析出 这句的单词流是 “create” “table” “identifier”(前提是你给它们编号 比如用宏或者枚举),然后语法分析 是通过单词流 判断 非逻辑错误 比如 有不能识别的符号 create table后面不是标示符等等 语义分析是分析语句的逻辑关系 比如字段长度越界什么的如 vchar(2) 你赋值为“啊啊啊啊啊啊”这种错误的识别是语义分析阶段完成的 希望能帮到你

⑧ 关于LL(1)文法

(1)first(E)={(,i},first(D)={+,-,ε},first(T)={(,i},first(S)={*,/,ε}
first(F)={(,i}
follow(E)={#,)},follow(D)={#,)},follow(T)={+,-,#,)} follow(S)={+,-,#,)} follow(F)={*,/,+,-,#,)}
(2)select(E->TD)=FIRST(TD)={(,i}
SELECT(E->+TD)={+}
SELECT(E->-TD)={-}
SELECT(E->ε)={#,)}
SELECT(T->FS)={(,i}
SELECT(S->*FS)={*}
SELECT(S->/FS)={/}
SELECT(S->ε)={+,-,#,)}
SELECT(F->(E))={(}
SELECT(F->i)={i}
预测分析表:
+ - * / ( ) i #
E ->+TD ->-TD ->TD ->ε ->TD ->ε
D
T ->FS ->FS
S ->ε ->ε ->*FS ->/FS ->(E) ->ε ->ε
F ->i

(3)i/i-i的分析过程:
步骤 输入串 剩余串 移进或规约
1 # i/i-i#
2 #i /i-i# E->TD
3 #DT ......
...
剩余的只要按照书上的步骤填就行了。

热点内容
java序列化工具 发布:2025-01-31 03:25:27 浏览:234
psv数据库 发布:2025-01-31 03:19:36 浏览:860
sparkwindows下编译 发布:2025-01-31 03:17:57 浏览:962
pid算法缺点 发布:2025-01-31 03:16:14 浏览:551
三菱人机界面编程实例 发布:2025-01-31 03:13:04 浏览:237
des加密毕业论文 发布:2025-01-31 02:57:01 浏览:711
ip跨网段访问 发布:2025-01-31 02:44:42 浏览:709
算法带头人 发布:2025-01-31 02:42:25 浏览:552
方舟上传数据 发布:2025-01-31 02:42:25 浏览:836
铃木uy比uu多了什么配置 发布:2025-01-31 02:34:11 浏览:677