利用解释器组装系统
1. 解释器模式概述
解释器模式基于一个简单的理念:某些编程问题通过创建专门的语言并在该语言中表达解决方案来解决最为有效。适合使用解释器模式的问题通常具有自包含性,边界清晰。例如:
- 编写基于特定规格搜索特定对象的代码时,可考虑创建查询语言。
- 面临创建复杂对象配置的任务时,可考虑构建配置语言。
另外,如果发现自己编写了大量离散的代码块,这些代码块本身编写起来并不困难,但组合方式不断增加,那么简单的解释器或许能完成所有组合工作。
2. 构建解释器
解释器通常分两个阶段工作:
- 解析阶段 :解析器读取程序文本并生成抽象语法树(AST)。AST 与原始程序信息相同,但转换为对象树,可更高效地执行。
- 评估阶段 :AST 根据一组外部条件(上下文)进行评估,以产生所需的计算结果。
以简单算术表达式 5.0*(3+x) 为例,其解释过程如下:
graph TD;
A[解析表达式] --> B[生成 AST];
B --> C[提供上下文值];
C --> D[评估 AST];
D --> E[得出结果];
- 解析表达式 :解析器从表达式的第一个字符开始处理,逐步识别出浮点数
5.0等,最终生成 AST。
超级会员免费看
订阅专栏 解锁全文
5752

被折叠的 条评论
为什么被折叠?



