软考之路--计算机背后的故事

文法:1.法制;法规。 2.文章的作法。 3.语法。语言的结构方式。包括词的构成和变化﹐词组和句子的组织。文法即文章的书写法规,一般用来指以文字、词语、短句、句子的编排而组成的完整语句和文章的合理性组织。这个是我们小时候接触过的关于文法的概念,那个时候的文法总是会和主语,宾语,谓语等联系在一起。

二十年过去了,今天她再次出现在我面前,还是一样的眼神,藏在记忆深处的“文法”跟眼前的这个“她”有什么不一样呢?在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和实现其编译器的方法。文法的描述多用BNF(巴克斯范式),而另一个重要的概念:正则表达式,也是文法的另一种形式。今天小编主要给大家讲解一下文法的相关知识。介绍文法的知识之前,先让我们来看一张图,小编会围绕这张图的内容展开,一一介绍。

好了,按照我们上面导图的顺序,小编一一来讲解一下各个知识点,还请各位大神不吝赐教。

终结符和非终结符

听着“终结”两个字儿,顿时感觉高大上的感觉,有么有,伴随着的是,这个是什么nie,都没有听说过,这是什么东东,其实这个并没有我们想象中的那么困难,首先,我们来看一个例子:

结合上面的例子,开讲啦,S为开始符,S,A,B为非终结符,在左边,可以推导出一个式子来。而p,q,a,b,c,d为终结符。讲到这里,小伙伴们是不是有点儿懵的感觉呢,什么终结符非终结符的,这个知识点我们可以这样来帮助我们来理解,我们可以这样想,S(start)也是一个非终结符,然后大写的为非终结符,小写的为终结符,那么这个概念就理解起来,也就没有那么困难了。

文法的类型

       文法的类型,有四种,这类知识点,在软考中通查都会这样考察我们,让我们判断这几种文法的类型。

  0型文法

结合下面的例子,我们来看看什么叫0型文法;

0型文法是这几个文法中,限制最少的一个,所以我们平常见到的至少是0型文法。G=(Vn,Vt,P,S),其中Vn是非终结符的集合,Vt是终结符的集合,P是推导式的一个集合,S是开始符。结合上面的例子,小编的分析如下:我们从图中来阐述一下这些概念,S,A,B为Vn,而p,q,a,b,c,d,为Vt,S为开始符。整个集合为P。我们每个式子里边的左边必须要包含这些元素或者元素组合中的至少一个非终结符,右边可以是这些元素的任意组合,左边有非终结符,右边有终结符,就欧了。如:A->ab。

 1型文法

也叫上下文有关文法;这个1型文法理解起来也不是我们想象中的那么困难;在0型文法的基础上,我们再添加一点点的限制就行了,我们看添加了什么限制:右边的长度>=左边的长度,这个长度我们可以这样来理解,就是这些字符的数量,小的推出大的或者相等的。这样可以帮助我们理解。比如:A->B,A->Bba  都符合要求,那么反过来,Bba->A就不符合要求了,因为左边是3,右边是1。

    2型文法

         也叫上下文无关文法。2型文法在1型文法的基础上,我们规定2型文法中,左边必须是非终结符,然而一个终结符一个非终结符的组合不是一个非终结符,如Ab不是一个非终结符,但是两个非终结符的组合就是一个非终结符了,如AB就是行了。那么应该是这样的:aB->abc就不符合要求,但是AB->abc就符合要求了。

 3型文法

也叫正规文法,对应有限状态自动机。在2型文法的基础上再加限制。要求更加高。要么一个非终结符推出一个终结符,要么一个非终结符推出一个终结符并且带一个非终结符。4个文法类的定义是逐渐增加限制的,因此每一种正规文法都是上下文无关的,每一种上下文无关文法都是上下文有关的,而每一种上下文有关文法都是0型文法。说了这么多的理论知识,接下来,我们来看一个问题:

首先我们先把她拆开来写,A->e   A->aB   B->Ab  B->a,接着,判断是否符合0型文法,0型文法规定左边必须有非终结符,符合,判断是否符合1型文法,1型文法是从小推到大的,也符合,判断是否符合2型文法,2型文法规定左边必须是非终结符,满足,最后,我们来看是否符合3型文法,3型文法只能符合右线性或者左线性,那么前面一个应该是符合右线性的,后面一个符合左线性的,所以综合起来看,不符合3型文法。所以,该题属于2型文法。接着,我们来讲解一下正规表达式。还记得当时敲机房收费系统的时候,有很多文本框,需要判断是否为空,写了一篇博文判断输入信息是否为空,米老师给了这样的评论,以后我们都采用正则表达式,那么正规表达式正则表达式有什么不一样呢,点击相应的连接,或许对您有帮助`(*∩_∩*)′。今天我们主要来讲讲正规表达式和正规文法之间的转换,首先,我们来看下面这张表格:

结合上面的表格,我们来分析一下这些规则

规则1:文法产生式(A—>xB,B->y ),正规式(A=xy)。对于这个文法产生式转换成正规式,我理解的就是一个代入的过程,把B=y代入A->xB即可得出正规式。反过来,正规式转换成文法产生式,则添加一个变量就可以了了。 规则2:这个式子里边有一个递归,A—>xA,这样就产生递归了,应该是这样的:A->xA,A->xA……这样的无穷下去,最终A还是要等于y的,所以x就有无穷多个,从0个到无穷多个,所以这个推导出来的正规式就是A=x*y,表明x有无穷多个。规则3:A—>x,A->y。那么A=x|y,这个就明白了。A退出x或者y。

        有穷自动机

NFA与DFA的定义:DFA:确定的有限自动机,M=(S,E,f,So,Z),我们来分析分析这个五元组:S是一个有限状态集合;E就是一个输入字符;f是一个SxE至S的映射;So:初态;Z:终态。我们来看看具体的例子,光是理论和概念的东西最不好理解,来看看例子吧:DFA=({S,A,B,C,f},{1,0},F,S,{f}),我们对照上面式子就能看的出来各个元素代表的意义,我们再来分析一遍:{S,A,B,C,f}是一个状态集合;{1,0}是输入字符;F是一个映射,S是初态,{f}是一个终态。那么我们接下来看这些映射:K(S,0)=B,K(S,1)=A,K(A,0)=f,K(A,1)=C,K(B,0)=C,K(B,1)=f,k(C,1)=f;我们根据这个流程,就有了这么一张图:

然后再看看NFA的定义:M=(S,E,f,So,Z) 这个五元组跟DFA的定义一样,在此不再赘述。

小编寄语:第一次接触编译原理的相关知识,小编理解的不是很深入,该博文主要介绍了文法,正规表达式有穷自动机,都是小编在现阶段理解的一丢丢的皮毛,希赛视频看下来,也是晕头转向,一篇漆黑的感觉,总结完编译原理的相关知识后,对这块的内容的理解仍然不深,不为别的,该博文,只为记录一个单纯的过程,还有我走过的软考之路,未完待续......

时间: 2024-10-10 20:20:47

软考之路--计算机背后的故事的相关文章

软考之路--开始的开始,我们都是孩子

为了软考,奋力一搏,没钱.没人脉.没背景,在人人自危的竞争中,要靠自己的真实力,这次考试我们积极备考,不打无准备之战,软考的目的,不仅仅是为了软考通过这么简单,在软考的背后还隐藏着一个古老的秘密,那就是为了学习知识,在个人重构,机房合作,牛腩新闻发布系统等学习中,小伙伴们有没有这样的疑问,出现了很多问题,解决了,但是具体的原理自己并不是很理解,这个时候,软考来了,驾着五彩的云霞,翩翩来到你眼前,解决我们计算机体系知识不全的问题.在面临自考,等级考,软考,计算机学习,英语学习等犹如冰糖葫芦的串儿的

软考之路(五)---编译原理 概念篇

从组成原理到编译原理,都是相互联系的,学习的知识都是在层层推进,顺利成章的,整个软考的所有的知识都可以从计算机的发展(组成原理)--->软件的开发(软件工程)--->软件的算法设计(数据结构)-->高级语言写的系统--->在计算机上识别(编译原理)--->各个系统的背后数据的支持--->(数据库)---->---网络知识的应用---->网络基础--,可以把整个所有的软考的课本给串起来,这些都是构成现在丰富世界的必不可少的条件. 当然由于机器语言由0.1组成,

软考之路--数据结构之线性表

数据就是数值,也就是我们通过观察.实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字.图像.声音等.数据可以用于科学研究.设计.查证等.结构,组成整体的各部分的搭配和安排,两者完美结合在一起,我们这样需要重新认识她,对她重新审视与定义:数据结构是程序设计的重要理论和技术基础,她所讨论的内容和技术,对从事软件项目的开发有重要作用,通过学习数据结构,我们学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所设计的数据悬着适当的逻辑结构.存储结构及其相应的操作方法,为提高应

软考之路--像树一样活着

俞敏洪说:我们每一个人,都应该像树一样的成长,即使我们现在什么都不是,但是只要你有树的种子,即使你被踩到泥土中间,你依然能够吸收泥土的养分,自己成长起来.当你长成参天大树以后,遥远的地方,人们就能看到你:走近你,你能给人一片绿色.活着是美丽的风景,死了依然是栋梁之才,活着死了都有用.这就是我们每一个同学做人的标准和成长的标准,开头小编先罗嗦一下,给各位小伙伴来一段心灵鸡汤,今天我们的知识点就从树开始说起. 树,原指木本植物之总名,主要由根.干.枝.叶.花.果组成.随着计算机的发展,在数据结构中树

软考之路(八)--- 大总结

软考考试伴随着24号完成了,但是学习才真正的开始,从整个准备软考过程,到考完,整体上来说时间对于自己来说还算是充裕的,收获是非常大的,不了解.不会的.模糊的知识越学发现越多啊,当然这期间的得与失,总结总结为Java的学习起到一个促进的作用. 自考PK软考PK专业课 非常重要的是自考的科目这次全部的通过,整个自考的过程对于非计算机系的我来说,算是极大程度上补充了很多计算机相关方面的知识,自考顺利成章的到软考,当看到软考的内容之后,心里多少有些底了,第一感觉:自考中大部分都学习过,解决了不怕不知道就

软考之路--你存在我深深的脑海里

小时候,总是期待着过年,过年可以吃到好多好吃的,暴露了小编的本质,哈哈,最让我期待的,就是压岁钱了,七大姑八大姨这个给一个红包,那个给一个红包,爸爸又会以同样的方式给她们的孩子,我们孩子从中得到的是纯利润,然后,恨不得连睡觉都紧紧握住自己的存钱筒,想着,要去买什么好吃的呢,在小编的理解中,把压岁钱存在一起,堆积起来的过程,就是存储,在我们的计算机中,官方定义如下存储就是根据不同的应用环境通过采取合理.安全.有效的方式将数据保存到某些介质上并能保证有效的访问,总的来讲可以包含两个方面的含义:一方面

软考之路(1)——浅解网络基础知识

对网络这一块的基础知识理解如下,以图文并茂的形式展出,便于分析和理解.解析与图如下: 物理层: 功能: 提供为建立.维护和拆除物理链路所需的机械.电气.功能和规程的特性: 提供有关在传输介质上传输非结构的位流及物理链路故障检测指示: 为数据链路层提供一个物理连接,以及他们的机械.电气.功能和过程性.如规定使用电缆和接头的类型,传送信号的电压.在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是位. 物理链路: 这里多次出现物理链路,简单解释物理链路:一条无源的点到点的物理线路段,中

软考之路(六)---数据库---深入浅出 三层模式两级映像

在备课数据库的时候,再一次遇到这三个概念,兴奋起来了,这次务必要转化为自己的话说出来,这样的知识点,才算理解吧(今后学习也是这样,学习的内容要用自己的话说出来为标准,才算有一定的理解). 我们首先,谈谈模式的概念,模式为某种事物的标准形式或使人可以照着做的标准样式.这个词用在数据库中,它是由英文的Schema翻译过来的.在数据库管理系统中,其模式是指数据模式(data schema),是数据抽象的结果表示,如用关系模型抽象学生的基本信息表示为:学生(学号,姓名,性别,出生年月,入校年月,专业编号

我的软考之路(七)——数据结构与算法(5)之查找

上篇博文我重点介绍了八大内部排序,这篇博文(数据结构与算法的最后一课)重点介绍查找,我们依旧沿用上篇博文的风格,先简单介绍,再以例子重点讲解. 下面我们开始今天的旅行,首先祝你旅行愉快,呵呵. 静态查找 若查找目的是为了查询某个特定的数据是否在表中或检索某个特定数据的各种属性,则此类查找表为静态查找表. 1.顺序查找 基本原理:从表一端开始逐个和关键字进行比较,若找到一个记录和给定值相等,则查找成功,反之失败.再简单点就是,一个一个的比大小,看看是否相等. 例子: 顺序查找更适合于顺序存储结构和