规则引擎设计与实现 | 青训营笔记

65 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

一、目录

本节课主要分为四个部分:

1.认识规则引擎

2.编译原理基本概念

3.设计一个规则引擎

4.规则引擎的实现

二、认识规则引擎

规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。

解决了开发人员重复编码的问题。

业务决策与服务本身解耦,提高服务的可维护性,缩短开发路径,提高效率。

由数据输入、规则理解、规则执行组成。

可以应用于风控对抗、活动策略运营、数据分析和清洗等方面。

三、编译原理基本概念

编译(compilation , compile)

1、利用编译程序从源语言编写的源程序产生目标程序的过程。

2、用编译程序产生目标程序的动作。

编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

词法分析

把源代码字符串转换为词法单元(Token)的过程。

语法分析

在词法分析的基础上,识别表达式的语法结构。

巴科斯范式

一种上下文无关文法,使用一系列符号和表达式来创建字符串生成规则。

类型检查

对子表达式的类型进行检查,包括编译时检查和运行时检查。

四、设计一个规则引擎

设计目标:支持特定的词法、运算符、数据类型、优先级,且支持基于以上预定义语法的规则表达式的编译和运行。

五、规则引擎的实现

见代码即可。