这是我参与「第五届青训营 」伴学笔记创作活动的第8天。
0、重点
- 规则引擎
- 编译原理
1、规则引擎
定义
全称为业务规则管理系统,英文名为 BRMS(即 Business Rule Management System)。规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块(注:领域特定语言)编写业务决策(业务规则)。由用户或开发者在需要时进行配置、管理。 需要注意的是规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。
规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台,通过接受动态数据流入根据内部的规则得出决策结果的处理器,以抽离业务逻辑保证其独立维护和动态更新。
组成部分
- 数据输入
- 规则理解
- 规则执行
应用场景
- 风控对抗
- 活动策略运用
- 数据分析和清洗
2、编译原理
词法分析
把源代码字符串转换为token的过程。
李想通过了青训营选拔
李想通过了青训营选拔
语法分析
在词法分析的基础上识别表达式的结构
李想+通过了+青训营选拔主+谓+宾
抽象树语法
表达式的语法结构可以用树来表示,每个节点(子树)是一个语法单元,这个单元构成的规则就叫做语法。每个节点还可以有下级节点。
- 上下文无关的语法
- 使用巴克斯范式表达(BNF)
- 递归下降算法
- 自顶向下构造语法树
类型检查
- 类型综合
- 根据子表达式的类型构造父表达式类型
- 编译时检查 & 运行时检查
-
类型检查可以发生在表达式的编译阶段,即构造语法树的阶段;也可以发生在执行的阶段。
编译时:需要提前声明参数的类型。在构建语法树的过程中进行类型检查。
执行时:可以根据执行时的参数输入的值类型,在执行过程中进行类型检查。
-