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

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

当然由于机器语言由0、1组成,难以阅读。所以在机器语言的基础上开发了汇编语言。由于汇编语言还是很难使用,所以开发出高级语言。现在的高级语言编写的程序、系统都是在汇编语言的编译下由计算机认识翻译执行。

编译原理的执行过程

词法

由基本字符(a,b……)构成的符号(单词)书写的规则

核心:单词拼写是否正确

语法

由程序语言的基本符号组成程序中的各个语法成分的一组规则

核心:关注的是句子的结构

语义

按照语法构成的各个语法成分(句子)的含义,关注的句子的含义

核心:静态,在编译时期发现

动态,在运行时期发现

语用

设计语境,适不适合在这里使用。

文法的概念

描述语言的语法结构的形式规则称为文法。(组合成语言的规则)

基本形式:

α→β

终结符(a,b,c,…..))和非终结符(A,BC,D,….):

终结符具有原子性,不可再分。非终结符,可以再分。

非终结符(程序)->终结符(语句)

终结符不可以单独出现在α中;

文法G是一个四元组,可表示为G(VT,VN,S,P)

VT(terminal symbol)是一个非空有限集,每个元素称为终结符。

VN(nonterminal symbol)是一个非空有限集,每个元素称为非终结符,它是不能单独在左边的。

S是一个非终结符,称为开始符号;它至少要在一条产生式中作为左部出现。

P是一个产生式集合(有限)。

文法分类

0型文法(短语文法,能力相当于图灵机)

例:A→a,Aa→a,aA→a

自我理解:左边至少有一个大写字母,右边随意

1型文法(上下文有关文法)

例:A→a,A→ab,Aa→BAc(左边至少有一个大写字母,且左边的长度小于等于右边的长度)

注意:α→ε也满足1型文法。

自我理解:即产生式右边的字母个数必须大于等于左边的字母个数。

2型文法(上下文无关文法)----->语法分析检测

例:A→a,A→ab,A→BAc(在1型文法的前提下,左边必须都是大写字母)

自我理解:即产生式左边必须完全都是大写字母

3型文法(正规式)

自我理解:即所有产生式右边要么没有大写字母,如果有必须全部在小写字母右边或者全部在小写字母左边也就是要保持线性一致

例子1:A→a,A→aB,B→a,B→cB,符合。

判断三型文法的注意事项:

(1)个文法中要么符合左线性,要么符合右线性,两套规则不能同时出现在一个语法中

(2)一个产生式推出的非终结符只能有一个;如果是一个文法中,非终结符要么都在右边的右边,要么都在右边的左边。

自动机

NFA 不确定的有限状态自动机

DFA确定的有限状态自动机

二者的区别:

个人认为最大的区别在于NFA中有带空的产生式,而且每个符号可以有很多个产生式,但是DFA每个符号必须有的产生式个数就是字母表中有几个字母,每个状态的产生式个数只能是少于或者等于字母表中字母的个数。而且不能有带空的产生式

NDA--->DFA转化(下一遍可大家分享)

正规式:正规式是描述程序语言单词的表达式

① ε是一个正规式,它表示集合L(ε)={ε}。

② 若a是∑上的字符,则a是一个正规式,它所表示的正规集L(a)={a}。

③ 若正规式r和s分别表示正规集L(r)=L(s),则

(a)r|s是正规式,表示集合L(r)∪L(s);

(b)r·s是正规式,表示集合L(r)L(s);

(c)r*是正规式,表示集合(L(r))*;

(d)(r)是正规式,表示集合L(r)。

产生式与正规式的转换:

自我理解:这块结合咱们数学上的式子来理解就很好了。

总结

编译的文法,是一种标准,按照标准来的,我们只需遵循他们的规范标准即可。时间万物都有一定的规律,当然各个语言有它的规范标准,知识间的相互联系,使问题变得简单,变得熟悉,学习起来更加的有兴趣,更具有动力。

接下来常重点考点实例解析和大家分享……

软考之路(五)---编译原理 概念篇,布布扣,bubuko.com

时间: 2024-10-05 11:09:12

软考之路(五)---编译原理 概念篇的相关文章

我的软考之路(九)——总结篇

经过两个月的备战,软考总算结束了.软考虽然结束了,但是还需要简单的总结一下得与失.我从时间安排,到讲课做真题简单的回顾一下软考的整个过程. 时间安排: 对于时间的安排,整个小组成员每个人都有自己的看法,我就不在这里吐槽了.对于我来说,时间安排有点仓促,看书的时间是拿晚上的休息时间补过来的.看书让我将课本的概念性的知识简单的过了一遍,即补充了当初学习的不足,也恶补一下基本知识,不管对于软考,还是对于后面的继续学习都是有帮助的. 时间安排,没有什么合理与不合理.以松散的状态完成一项任务的时间是合理的

我的软考之路(五)——数据结构与算法(3)之图

图跟树一样,也是非线性结构,咋看起来有点复杂,其实它很简单.树具有层次关系,上层元素可以与下一个多个元素连接,但是只能和上层的一个元素连接.在图结构中,节点间的连接是任意的,任何一个元素都可以与其他元素连接. 图相对而言很简单,我们只介绍的图的遍历和最小生成树,现在我们开始. 遍历 1.概念 从图中某一个顶点出发,访问图中的每一个结点,并要求只能访问一次,不能重复访问. 2.方法 (1)广度优先遍历 基本思想:首先访问顶点,再访问顶点的全部未访问的邻结点,再访问邻结点的所有结点即可(类似树的层次

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

文法:1.法制:法规. 2.文章的作法. 3.语法.语言的结构方式.包括词的构成和变化﹐词组和句子的组织.文法即文章的书写法规,一般用来指以文字.词语.短句.句子的编排而组成的完整语句和文章的合理性组织.这个是我们小时候接触过的关于文法的概念,那个时候的文法总是会和主语,宾语,谓语等联系在一起. 二十年过去了,今天她再次出现在我面前,还是一样的眼神,藏在记忆深处的"文法"跟眼前的这个"她"有什么不一样呢?在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和

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

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

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

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

我的软考之路(四)——数据结构和算法(2)树和二叉树

上鲍恩描述了数据结构的线性结构,我们引入非线性结构本博客-树和二叉树.我想向大家介绍一些基本概念树,树遍历,然后介绍了二叉树的概念和特征.和二叉树遍历.叉树的对照,总结. 树为了描写叙述现实世界的层次结构,树结构中一个数据元素能够有两个或两个以上的直接后继元素. 树的基本概念: 树的概念是学习树的关键所在.掌握了树的基本概念,学会树与二叉树,so easy. 我通过一棵树来了解树的基本概念.例如以下图 1.结点的度 结点的度是子结点的个数.比如:结点1有三个字结点2,3,4,所以结点1的度为3.

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

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

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

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

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

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