编译原理
文章平均质量分 84
小菜鸡加油
菜鸡
什么都能折磨
展开
-
编译原理小结
文章目录正则表达式转NFA,NFA转DFA,DFA化简正则表达式转NFA汤森构造法NFA转DFA简化DFAEBNFRecursive-Descent(递归下降分析)LL(1)1.First集合2.FOLLOW集合3.判断是否是LL(1)文法4.构建预测分析表LR(0)及SLR(1)1.LR(0)[直接写一行]1.改造文法2.所有项目3.构建项目规范簇4.项目规范簇DFA5.构造分析表6.匹配预测表2.SLR(1)[FOLLOW集合]2.1 SLR(1)的做法2.2SLR(1)的匹配过程2.3 SLR(1)的原创 2021-12-29 18:35:32 · 1276 阅读 · 3 评论 -
编译原理与实践(第四章与第五章答案)
编译原理作业2The Exercises of The Chapter Four4.8 Consider the following grammar: lexp→atom|list atom →number|identifier list→(lexp-seq) lexp-seq→lexp-seq lexp|lexpa. remove the left recursive.b. Construct First and Follow set原创 2021-12-10 10:17:59 · 4782 阅读 · 5 评论 -
编译原理实验-递归下降语法分析器的构建
实验目的:针对给定的上下文无关文法,编制一个递归下降分析程序。分析:递归下降语法分析的前提是保证LL(1)文法递归下降的思路就是暴力dfs。对每个程序直接不管三七二十一搜进去,只要能搜到就继续搜。搜不到就return搜其他的。先看文法:① : lexp->atom|list② :atom->number|identifier③ :list->(lexp-seq)④ :lexp-seq->lexp-seq lexp|lexp很明显左递归,先消除一下① :原创 2021-11-19 20:06:28 · 3385 阅读 · 2 评论 -
编译原理与实践-语法分析(自顶向下分析部分)
4.语法分析自顶向下(Top Down)【从文法产生语言的角度】(从根开始,逐步为某语句构造一棵语法树):递归子程序法预测分析法(LL(1))自底向上(Bottom Up)【从自动机识别语言的角度】(相反,将一句子归约为开始符号):算符优先分析法LR(0),SLR(1),LR(1),LALR(1)这些是解决确定性问题的。也就是说每种算法由他的判定条件来决定使用什么文法。同时假定文法是压缩的:即产生了无用产生式。(如S->ab,A->c,后者是走不到的状态,输入的时候就该原创 2021-11-19 19:58:16 · 2669 阅读 · 0 评论 -
编译原理及实践-第一章
chapter-1 introduce本章根据2021.9.7蹭课记忆记录1.1为什么要用编译器从源程序到可执行目标文件的过程为:源程序------>编译器--------->目标程序在这个过程中,首先源程序由高级语言写的话,需要翻译成机器语言。如果源程序大的话,那么这个过程手写会很复杂。比如token,人工处理每次都要处理,编译器就帮助处理扫假如不要编译器,直接由hardware machine来支持就存在一些问题源程序的高级语言存在更新,也就是语言本身是更新的。这样原创 2021-11-19 19:52:37 · 1118 阅读 · 0 评论 -
编译原理实验1——TINY语言的词法分析
一、 实验目的构造tiny语言的词法分析器(扫描器),要求利用第三方的lex工具进行构造。构造出的扫描器,能够读入教材样例中给出的tiny语言的示例代码,分解成token输出。掌握使用lex工具掌握构造词法分析器掌握LEX的输入文件的编写二、 实验设计掌握词法分析器的构造和使用,学会使用 fex 工具来构造词法分析程序。1.选择教材《程序清单2-3 TINY语言中的样本程序》作为输入2.选择教材中《程序清单2-4》作为输出3.程序分析与设计由TINY语言的样本程序可得,主要有注释,数字标原创 2021-11-19 19:19:36 · 3432 阅读 · 0 评论