这是我参与「第五届青训营」伴学笔记创作活动的第9天。
课堂笔记
一、本堂课重点内容:
- 认识规则引擎
- 编译原理基本概念
- 设计一个规则引擎
- 规则引擎的实现
二、具体案例:
1. 认识规则引擎
-
规则引擎的定义
规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
-
组成部分
-
应用场景
2. 编译原理基本概念
-
词法分析
词法分析就是把源代码字符串转换为词法单元(Token)的这个过程。
-
语法分析
语法分析就是在词法分析的基础上,识别表达式的语法结构的过程
-
抽象语法树
表达式的语法结构可以用树来表示,其每个节点(子树)是一个语法单元,这个单元的构成规则就叫“语法”。每个节点还可以有下级节点。
-
类型检查
- 类型综合
- 编译时检查&运行时检查
3.设计一个规则引擎
- 设计目标
设计一个规则引擎,支持特定的词法、运算符、数据类型和优先级。并且支持基于以上预定义语法的规则表达式的编译和执行。
- 词法分析
- 语法分析
- 语法树执行与类型检查
4.规则引擎的实现
三、课后个人总结
编译原理的重要性,基本知识属于编译原理,这里项目的实现是用go语言实现了编译原理的里面编译系统,不过这种自定义的规则应用于实际应用中,可以为开发提供更多便利。