zoukankan      html  css  js  c++  java
  • [置顶] 编译原理(自动机)软考考点总结

            编译原理的软考考点如下:

    1.     文法
    2. 有穷自动机
    3. 语法推导树
    4. 算符优先

    本篇文章主要是对这几部分内容进行一下整理

    文法   


       1、基本概念
       
           文法是由一个四元组组成的,下面是总结好的一些基础知识
      这些基本的概念是需要牢记的,最起码的要知道四元组中每个符号都是什么意思,也是学习下面的一个基础 

       2、三种文法介绍    
        对于三种文法的介绍,我是以思维导图的形式总结出来的,如下所示:

    其实对于这三种文法的关系,看起来复杂,总结到一起也就是简单集合包含关系,四种文法就像是四个蛋,而他们的关系就是分别为各自的蛋黄 
             

    记住这张图,以及四种文法的基本概念,我想也就学会了吧,做题的时候想着四者的关系,那么也就不容易出错了   对于文法的介绍就到这里,想要理解的更好其实我觉着还是要多看一些例子,才能更加深你对这些概念的理解



    有穷自动机

    这部分只介绍了NFA 和DFA 以及他们之间的转换  
             NFA  不确定的有穷状态自动机
             DFA确定的有穷状态自动机

    二者的相同点:  都是五元组 (S ∑ f,s Z)  S 有限的状态集合   ∑ 字母表  f 产生式   s  开始符号  Z终结符 ( 终态)

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

    因此两者之间是可以转换的,也就是说把带空的NFA 转换成为DFA   
                 具体的转换过程我就不在这里写出来了,百度上任意查找一个例子都可以

    在两者之间的转换中  还存在下面的三种情况
        
          

      掌握了这三种基础的转换文法, 在加上小例子的帮助,做题就会顺手了 

    语法推导树  

     一些知识如下,个人的理解就是构造一棵树,来表示一个短语的形成过程 

       

    上述语法树中,叶子节点组成的短语,也就是我们所要构造的那个短语 


    算法优先


       这部分知识  主要掌握4部分,
    1,基础概念:
      

    2 两个方法  
             

    4 三种关系 
        

    4   算符优先表  
       


    以上就是关于编译原理的一些内容,总结起来不是很多,但是需要学习的其实挺多的,了解了基本的概念剩下的也就是练习了,通过练习,才能深刻的理解这些含义! 

        如有不足之处,欢迎交流!
  • 相关阅读:
    剑指offer python版 正则表达式匹配
    剑指offer python版 删除链表中重复的结点
    剑指offer python版 在O(1)时间删除链表结点
    剑指offer python版 打印1到最大的n位数
    剑指offer python版 数值的整数次方
    剑指offer python版 二进制中1的个数
    剑指offer python版 剪绳子
    剑指offer python版 机器人的运动范围
    设计模式(二) 工厂模式
    设计模式(一) 单例模式
  • 原文地址:https://www.cnblogs.com/riskyer/p/3320092.html
Copyright © 2011-2022 走看看