• Atitit 下推自动机﹙PDA﹚说明书 目录 1. 概念组成与原理成分 1 2. 性状 1 3. 适用场景 主治 适应症 1 3.1. 所有场景()。 1 3.2. 语法解析 构建ast 2 3.


    Atitit 下推自动机﹙PDA说明书

     

    目录

    1. 概念组成与原理成分 1

    2. 性状 1

    3. 适用场景 主治 适应症 1

    3.1. 所有场景()。 1

    3.2. 语法解析 构建ast 2

    3.3. 监视器模式 2

    4. Bp 最佳实践 用法 2

    5. 缺点 不良反应 2

    5.1. 比起fsm强大了很多 2

    5.2. 依然有写功能可能不好实现 2

    6. 禁忌 不适应场合 2

    7. 注意事项 2

    8. 相互作用与其他类库模式 3

    8.1. 类似的有fsm  turing 3

    9. 过量与滥用后果 3

    10. 原理 3

    11. 理解曲线动力学 3

    11.1. 学习曲线,鉴于fsm状态机和,turing机之间  3

    12. 储藏 3

    13. 包装与api接口 3

    14. 执行标准 3

    15. 生产组织与个人  attilax 3

    16. Ref 3

     

    1. 概念组成与原理成分

    下推自动机可以形象的理解为,把有限状态自动机扩展使之可以存取一个栈。每一个下推自动机都接受一个形式语言。下推自动机存在确定与非确定两种形式,两者并不等价。﹙对有限状态自动机两者是等价的﹚被非确定下推自动机接受的语言是上下文无关语言。

    2.  性状

    3.  适用场景 主治 适应症

    3.1. 所有场景()。

    更复杂场景使用turing

    3.2. 语法解析 构建ast

    3.3. 监视器模式

    4. Bp 最佳实践 用法

    5、处理事件输入,实现状态跳转逻辑。 case

    这里有两种写法,一种是在状态中判断事件:一种是事件中判断状态:

    本人观点:一般业务场景来说,状态的数量是确定的切数目较少,不同状态下需要处理的事件也不一样。而触发的事件数量则比较多,采用上面第二种方式在事件中判断状态也有利于把里面一层的switch/case剥离出来当成单独的函数,做一些代码模块结构的优化,故推荐使用第二种方式,事件中判断状态。

    5. 缺点 不良反应

    5.1. 比起fsm强大了很多

    5.2. 依然有写功能可能不好实现

    6.  禁忌 不适应场合

     

    7. 注意事项



    这里需要注意的两个问题:

    1避免把某个程序动作当作是一种状态来处理。那么如何区分动作状态动作是不稳定的,即使没有条件的触发,动作一旦执行完毕就结束了;而状态是相对稳定的,如果没有外部条件的触发,一个状态会一直持续下去。

    2状态划分时漏掉一些状态,导致跳转逻辑不完整。

    所以维护上述一张状态表就非常必要,而且有意义了。从表中可以直观看出那些状态直接存在跳转路径,那些状态直接不存在。如果不存在,就把对应的单元格置灰。 每次写代码之前先把表格填写好,并且对置灰的部分重点review,看看是否有漏态,然后才是写代码。QA拿到这张表格之后,写测试用例也是手到擒来。

    8. 相互作用与其他类库模式

    8.1. 类似的有fsm  turing

    9. 过量与滥用后果

    10. 原理

    11. 理解曲线动力学 

    11.1. 学习曲线,鉴于fsm状态机和,turing机之间

    下推自动机比有限状态自动机复杂:除了有限状态组成部分外,还包括一个长度不受限制的栈;下推自动机的状态迁移不但要参考有限状态部分,也要参照栈当前的状态;状态迁移不但包括有限状态的变迁,还包括一个栈的出栈或入栈过程。

    12. 储藏 

    13. 包装与api接口

    14. 执行标准

    15. 生产组织与个人  attilax

    16. Ref

     

  • 相关阅读:
    Mysql多表关系
    Linux权限
    Linux安装python环境脚本
    ZJNU 2136
    ZJNU 2135
    ZJNU 2133
    ZJNU 1699
    ZJNU 1542
    ZJNU 1538
    ZJNU 1535
  • 原文地址:https://www.cnblogs.com/attilax/p/15197595.html
Copyright © 2020-2023  润新知