解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 介绍 意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释 ...
分类:
其他好文 时间:
2016-06-19 12:44:23
阅读次数:
139
概述 解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它用于描述如何使用面向对象语言构成一个简单的语言解释器。在某些情况下,为了更好地描述某一些特定类型的问题,我们可以创建一种新的语言,这种语言拥有自己的表达式和结构,即文法规则,这些问题的实例将对应为该语言中的句子。此时,可以使用解释器模 ...
分类:
其他好文 时间:
2016-06-18 22:23:38
阅读次数:
121
1. 解释器模式(Interpreter Pattern)的定义 (1)定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 ①文法:即语法规则。在解释器模式中每一个语法都将对应一个解释器对象,用来处理相应的语法规则。它对于扩展、改变文法以及增加新的 ...
分类:
其他好文 时间:
2016-06-17 22:32:28
阅读次数:
218
解释器模式意图为给定的语言定义其文法表示,同时定义该文法表示的一套解释器来解释语言中的句子。该模式说的简单通俗点,其主要用途是用来解释用的。至于解释什么,则要看具体的上下文环境。我们可以为一个表达式专门写一个解释器、也可以为一个语句写一个解释器,一个语句可以看成是由多个表达式构成的、因此,我们同样可 ...
分类:
其他好文 时间:
2016-06-11 11:58:55
阅读次数:
148
当一个文法满足LL(1)条件时,我们就可以为它构造一个不带回溯的自上而下分析程序,这个分析程序是由一组递归过程组成的,每个过程对应文法的一个非终结符。这样的一个分析程序成为递归下降分析器。 例:一个支持 +,*,(,) 的简单文法为(用$表示空字符): E -> TE' E -> +TE' | $ ...
分类:
其他好文 时间:
2016-06-11 10:24:46
阅读次数:
115
IK简介 IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Jav ...
分类:
其他好文 时间:
2016-06-04 15:00:33
阅读次数:
547
定义:解释器模式是一种按照规定语法进行解析的方案,给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。实际上可以理解为是一个编译器(esclipse或者vc)或者是正则表达式。 类图: 以加减运算为例 业务需求:输入一个模型公式(加减四则运算),然后输入模 ...
分类:
其他好文 时间:
2016-06-01 22:43:06
阅读次数:
149
词法分析的理论知识不少,包括了正规式、正规文法、它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等。。。 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if、switch-case来写一通所谓的状态转换就可以,我近期会写一个简单的词法分析程序来作为例子。。 ...
分类:
其他好文 时间:
2016-05-30 19:48:39
阅读次数:
165
经过一天的实践, 勉强写完了语法分析部分和词法分析的抽象语法树的生成部分... 但是也发现也昨天规定的词法和文法中出现的一些问题, 同时我根据情况进行了一些改动... 改动1 : 逻辑操作符 ||, && > |, & (主要是方便实现)... 改动2 : expr归入了judge类(关于这一点, ...
分类:
其他好文 时间:
2016-05-29 21:25:33
阅读次数:
269
解释器模式: 给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。 角色: 环境角色:定义解释规则的全局信息。 抽象解释器::定义了部分解释具体实现,封装了一些由具体解释器实现的接口。 具体解释器(MusicNote):实现抽象解释器的接口,进行具体的解释 ...
分类:
Web程序 时间:
2016-05-28 14:08:43
阅读次数:
149