• 编译原理 第三章 词法分析(下)


    3.6 有穷自动机(非常重要)

    3.6.1 不确定的有穷自动机(重要)

    例:

     状态0是开始状态, 在状态0上输入符号b会进入状态0,输入a可能进去状态0也有可能进入状态1。所以对于状态0来说一个确定的输入符号a他有两种离开状态,这就是一种不确定的状态。

    3.6.2 转换表 (非常重要)

    : 3-24NFA 对应的转换表

    3.6.3 自动机中输入字符串的接受(重要)

     

    状态0连接着两个ε,为什么要连接ε?

    我们可以把NFA L(aa*|bb*),拆分为两个独立的NFA。

    1. L(aa*) 接受a开头的a字符连接的串

    2. L(bb*)接受b开头的b字符连接的串

    L(aa*|bb*)同时接受这两种模式的串。每个NFA都需要一个开始状态,这个开始状态不需要任何输入符号就可能进入L(aa*)或者L(bb*)

    所以我们需要在开始状态连接L(aa*) L(bb*),但是他们不需要任何输入符号所以我们用ε去连接L(aa*)L(bb*)的开始状态。

    3.6.4 确定的有穷自动机(重要)

     

    第三章后续都是一些算法,每个算法单独记录一个博文把。。。。

  • 相关阅读:
    AngularJS自定义表单验证器
    AngularJS自定义表单验证
    DataTables自定义筛选器
    DataTables列过滤器
    DataTables语言国际化
    DataTables DOM定位
    DataTables自定义事件
    DataTables给表格绑定事件
    自定义Celery任务记录器
    celery 日志设置
  • 原文地址:https://www.cnblogs.com/lxykl/p/9994357.html
Copyright © 2020-2023  润新知