zoukankan      html  css  js  c++  java
  • 3-编译原理

    考点:

    n  文法

    n  正规式

    n  有穷自动机

    n  语法推倒树

    n  算符优先

    文法

    认识终结符和非终结符

    终结符:是最终的符号,是不可以单独在推导式的左边     小写字母表示

    非终结符:是可以拆分的       大写表示

    通常用S表示为开始符

    文法类型:

    Vn:表示非终结符的集合

    Vt:表示终结符的集合

    P:推导式的集合

    S:表示开始符

    关于3型文法的详细解释,在随笔中可以找到

    链接:http://www.cnblogs.com/tangwanzun/p/5879577.html

    正规文法和正规式的转化

    规则二中并不是x乘以y

    其中A->aX 是一个递归式 ,x※  表示x有0到无穷多个 但是,他最终也等于y  所以写作x※y

    试题:

    S可以xSx或者y,其中的xSx中的S又可以展开,那么就是xyx或者xxSxx,xxSxx又可以展开,不断下去,总是两边有一样多的x,然后中间一个y

    所以选择D

    选择排除法:

    等价的概念:就是两个正则式可以相互表示,即,A正则式可以表达出B正则式的任意组合,反之相同

    1. 可以看到,每一项中后面都有一个b,所以我们可以不看b
    2. (aa*|ab)代指的是,由aa*和ab构成的

        a)      文法特征: b前面必须有一个a

      3.(a|b)表示由a或b组成

        a)      文法特征:只要有a或b就可以

        4.((a|b)|aa)

        a)      文法特征:只要有a或b就可以

        b)      解释:这个是由两部分构成(a|b)和aa,因为这两部分是或的关系,所以两者出现一个就可以,而且(a|b)还存在于正则式2中,所以可以看出2                          与3是等价的

           5. 此题选择C

    a可以是零个或者是多个

    我们由规则2知道,am等价于a※

    b必须是一个以上,则b是bb※,只有这样才能保证b至少是一个

    所以此题选择A

    提醒:关于正则式的相关知识,其实太过于复杂,不适合初学者学习,即便是不懂也不用过于在意,考试中牵扯的只是简单的转化和理解,只要能够理解上面题目,就可以应付软件设计师的考试

     

  • 相关阅读:
    flask基础之请求处理核心机制(五)
    flask基础之app初始化(四)
    python内置模块之itertools
    python基础之命名空间
    python进阶之类常用魔法方法和魔法属性
    python进阶之函数和类内建魔法属性
    mysql笔记一——安装和设置root密码
    centos7环境安装rabbitMQ
    查询数据库锁
    [转]低成本搭建谷歌镜像
  • 原文地址:https://www.cnblogs.com/tangwanzun/p/5897677.html
Copyright © 2011-2022 走看看