![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理(C)
一只睡不醒的猪
目前是吉林大学20届研究生在读
展开
-
删除字符串中多余的空格
删除字符串中多余的空格首先我们需要将字符串中字符之间多余一个的空格删除掉例如"i am a student"修改后应为’‘i am a student"算法思想:先找到一个空格i,若i+1也为空格,则进行下一步处理,否则,继续寻找然后再找到距离i之后的非空格j删除i与j之间的所有空格,则只剩下i一个空格for(i=0;str[i]!=EOF;i++){//保留一个空格(...原创 2019-03-03 16:17:32 · 5219 阅读 · 5 评论 -
LR(0)分析表的构建
LR(0)分析表的构建原创 2019-05-31 22:56:50 · 27729 阅读 · 25 评论 -
编译原理LL(1)文法的判断(first集、follow集和select集)
编译原理LL(1)文法的判断(first集、follow集和select集)1、问如何通过给定的文法,判断该文法是否是LL(1)文法?2、答求出该文法的first集、follow集和select集,通过select集之间的关系进行判断3、集合3.1 first集B->abS first(B)={a}B->AS若A(A可0步或多步得出A->ε),fi...原创 2019-05-08 20:27:52 · 7511 阅读 · 3 评论 -
构造LL(1)文法的递归下降子程序
构造LL(1)文法的递归下降子程序1、要求输入:LL(1)文法输出:递归下降子程序如:文法G[S]:S→AaS|BbS|dA→aB→ε|e若输入:aad则输出:S→AaSA→aS→d句子结构正确!若输入:aas则输出:S→AaSA→asyntax error句子结构错误!2、分析输入一个LL(1)文法到字符串数组中根据文法计算相应First集、Fo...原创 2019-05-08 21:33:21 · 4896 阅读 · 10 评论 -
(编译原理)正规文法转正规式(原代码)
正规文法转正规式原创 2019-04-05 17:28:37 · 7832 阅读 · 2 评论 -
根据文法规则,判断文法类型
根据文法规则,判断文法类型1、实验要求输入:文法规则输出:文法类型2、实验原理文法规则:以四元组的形式展示出来:文法G 定义为四元组G={Vn,Vt ,P,S}Vn :非终结符集Vt :终结符集P :产生式集合(规则集合)S :开始符号(识别符号)文法类型:文法类型分为四种:0型文法、1型文法、2型文法和3型文法0型文法:通俗的说,写出来的文法规则都输出0型文法1型...原创 2019-03-23 20:47:02 · 7688 阅读 · 2 评论 -
根据文法进行表达式推导
根据文法进行表达式推导(编译原理)1、实验要求已知文法:E-> T | E +TT-> F | T * FF->(E) | i请给出下述表达的推导公式:i+i(i)(i+i)*i2、实验原理通过文法进行推导分为左推导和右推导例如: i+i左推导:EE+TT+TF+Ti+T...原创 2019-03-24 21:40:23 · 6986 阅读 · 0 评论 -
C语言栈的用法(创建、入栈、出栈、遍历)
C语言栈的用法(创建、入栈、出栈、遍历)本篇博客主要简单介绍如何使用C语言构建栈,元素入栈,元素出栈以及遍历所有的栈内元素1、栈的定义首先对栈进行定义,构建一个简单的结构体,采用typedef struct 的类型,然后包含栈顶、栈底和栈内元素三个部分typedef struct{ char data[100]; int top; int bottom;}stack;上述代码表...原创 2019-03-16 14:35:47 · 65829 阅读 · 20 评论 -
逆波兰式的实现及表达式的值
逆波兰式的实现1、概念逆波兰式也叫后缀表达式,这里先简单帮大家理解一下概念性问题。像我们平常使用到的表达式如(a+b)∗c、2+5∗3(a+b)*c、2+5*3(a+b)∗c、2+5∗3等都是中缀表达式,对我们来说是最能理解的,但是计算机则理解起来比较困难,而其相应的后缀表达式为ab+c∗、253∗+ab+c*、253*+ab+c∗、253∗+则更好的便于计算机的理解和处理。最直观的是用树来...原创 2019-03-10 18:35:11 · 1561 阅读 · 0 评论 -
编译预处理(文件读入并输出文件,删除注释、回车、换行和多余空格)
编译预处理(C语言)使用文件形式输入源程序,输出也写入文件实验过程:1、输入:源程序2、输出:与处理后的源程序3、处理结果:没有无用的字符(删除所有注释、回车、换行和多余字符)实验内容:1、文件输入源程序首先准备好文档,使用fopen函数选择读入或写出的方式,采用fgets和fgetc函数进行读取字符或字符串进行相应的处理fr=fopen(“a.txt”,“r”);从名为a.tx...原创 2019-03-03 16:29:26 · 7997 阅读 · 16 评论 -
语义计算的递归下降(预测)翻译程序
语义计算的递归下降(预测)翻译程序原创 2019-06-20 15:42:23 · 4607 阅读 · 4 评论