这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
认识规则引擎
定义
接受数据输入,解释业务规则,并根据业务规则做出业务决策。
组成
数据输入 -> 规则引擎 -> 规则执行
编译原理基本概念
词法分析
把源代码字符串转成词法单元(Token)这个过程
如何识别Token???
语法分析
有限自动机(状态机):在任何一个状态,基于输入的字符,都能做一个确定的状态转换
将句子转化成一个树
上下文无关语法
语言句子无需考虑上下文,就可以判断正确性
r := a > b
- 产生式:一个表达式可以由另外已知类型的表达式或者符号推导
S : AB
A : aA | ε
B : b | bB
递归下降算法
不断的对 Token 进行语法展开(下降),展开过程中可能会遇到递归的情况。
类型检查
- 类型综合:根据子表达式的类型构造出父表达式的类型
- 编译时检查 & 运行时检查:
- 编译时检查:需要提前声明参数的类型,在构建语法树过程中进行类型检查
- 运行时检查: 可以根据执行时的参数输入的值类型,在执行过程中进行类型检查
好复杂T_T