这是我参与「第五届青训营 」伴学笔记创作活动的第8天
1.规则引擎
1.1规则引擎的概念与优点
规则引擎是一种嵌入在应用程序中的组件,可以将灵活多变的业务决策从服务代码中分离出来。通过使用预定义的语义模块来编写业务逻辑规则。在执行时接受数据输入、解释业务规则,并做出决策。实现了规则引擎后业务人员可以直接在规则引擎中修改规则决策,解决了开发人员重复编码问题,实现了业务和服务解耦,提高了服务的可维护性。
1.2规则引擎的组成
- 数据输入
- 支持接收预定义的语法编写的规则作为策略集
- 支持接收业务数据作为执行过程中的参数
-
规则理解
-
规则执行
根据执行时输入的参数对策略集中的规则进行正确的解释和执行。同时对规则执行过程中的数据类型进行检查,确保执行结果正确。
1.3规则引擎的应用场景
风控对抗 活动策略运营 数据分析和清洗
2.编译原理基本概念
2.1词法分析(Lexical Analysis)
词法分析是把源代码字符串转换为词法单元(Token)的过程(也就是识别一个个的单词)。
2.2语法分析(Syntax Analysis)
语法分析就是在词法分析的基础上,识别表达式的语法结构的过程。语法结构是树状结构,叫做抽象语法树(Abstract Syntax Tree,AST),树的每个节点(子树)是一个语法单元,这个单元的构成规则就叫“语法”。每个节点还可以有下级节点。
2.3抽象语法树
2.3.1上下文无关语法 Context-Free Grammar
语言句子无需考虑上下文,就可以判断正确性。使用巴科斯范式(BNF)来表达