1 / 30
文档名称:

第19 解释器模式.ppt

格式:ppt   大小:1,140KB   页数:30页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第19 解释器模式.ppt

上传人:wz_198613 2018/6/26 文件大小:1.11 MB

下载得到文件列表

第19 解释器模式.ppt

文档介绍

文档介绍:本章教学内容
解释器模式
模式动机与定义
模式结构与分析
模式实例与解析
模式效果与应用
模式扩展
要不要弄个新的编程语言玩玩?
解释器模式
模式动机
如果在系统中某一特定类型的问题发生的频率很高,此时可以考虑将这些问题的实例表述为一个语言中的句子,因此可以构建一个解释器,该解释器通过解释这些句子来解决这些问题。
解释器模式描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发的编译器中。
解释器模式
模式动机
解释器模式
模式定义
解释器模式(Interpreter Pattern) :定义语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”意思是使用规定格式和语法的代码,它是一种类行为型模式。
解释器模式
模式定义
Interpreter Pattern: Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.
Frequency of use: low
解释器模式
模式结构
解释器模式
模式结构
解释器模式包含如下角色:
AbstractExpression: 抽象表达式
TerminalExpression: 终结符表达式
NonterminalExpression: 非终结符表达式
Context: 环境类
Client: 客户类
解释器模式
模式分析
解释器模式描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。
解释器模式
模式分析
文法规则实例:
expression ::= value | symbol
symbol ::= expression '+' expression | expression '-' expression
value ::= an integer //一个整数值
在文法规则定义中可以使用一些符号来表示不同的含义,如使用“|”表示或,使用“{”和“}”表示组合,使用“*”表示出现0次或多次等,其中使用频率最高的符号是表示或关系的“|”。
解释器模式
模式分析
抽象语法树:
除了使用文法规则来定义一个语言,在解释器模式中还可以通过一种称之为抽象语法树(Abstract Syntax Tree, AST)的图形方式来直观地表示语言的构成,每一棵抽象语法树对应一个语言实例。