当前位置: 首页 > 编程笔记 >

C++:解释器模式

纪枫
2023-04-24

模式定义

给定一个语言,定义它的文法的一种表示,并定义一种解释器,这个解释器使用该表示来解释语言中的句子。

解释器模式的优点

解释器是一个简单语法分析工具, 它最显著的优点就是扩展性, 修改语法规则只要修改相应的非终结符表达式就可以了, 若扩展语法, 则只要增加非终结符类就可以了。

解释器模式的缺点

● 解释器模式会引起类膨胀

● 解释器模式采用递归调用方法

● 效率问题

解释器模式的使用场景

● 重复发生的问题可以使用解释器模式

● 一个简单语法需要解释的场景

 类似资料:
  • 主要内容:介绍,实现,Expression.java,TerminalExpression.java,OrExpression.java,AndExpression.java,InterpreterPatternDemo.java解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 介绍 意图:给定一个语言,定义它的文法表示,并定义一个解释

  • 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 介绍 意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 主要解决:对于一些固定文法构建一个解释句子的解释器。 何时使用:如果一种特定类型的问

  • 问题 其他人需要以控制方式运行你的一部分代码。相对地,你选择的语言不能以一种简洁的方式表达问题域。 解决方案 使用解释器模式来创建一个你翻译为特定代码的领域特异性语言( domain-specific language )。 我们来做个假设,例如用户希望在你的应用程序中执行数学运算。你可以让他们正向运行代码来演算指令(eval)但这会让他们运行任意代码。相反,你可以提供一个小型的“堆栈计算器(st

  • 简介 解释器模式:给定一个语言,定义它的语法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 解释器模式需要解决的是,如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。 比如说,我们常常会在字符串中搜索匹配字符或判断一个字符串是否符合我们规定的格式,此时一般我们会

  • 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 介绍 意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 主要解决:对于一些固定文法构建一个解释句子的解释器。 何时使用:如果一种特定类型的问

  • 解释器(Interpreter) Intent 为语言创建解释器,通常由语言的语法和语法分析来定义。 Class Diagram TerminalExpression:终结符表达式,每个终结符都需要一个 TerminalExpression。 Context:上下文,包含解释器之外的一些全局信息。 Implementation 以下是一个规则检验器实现,具有 and 和 or 规则,通过规则可以构