一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构解释器模式的定义如下:定义语言的文法,并且...
分类:
编程语言 时间:
2014-06-28 18:45:39
阅读次数:
290
学习一下inside-outside算法,主要用于在已知文法结构下CFG,无监督parse。CFG可定义为Chomsky Normal Form,对于生成的任何一个分析树有对应的potential值,树的potential值由其生成规则的potential值之乘积。因此对于potential的不同定...
分类:
其他好文 时间:
2014-06-14 23:26:47
阅读次数:
376
解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。简单描述:一个AbstractExpression类,多个子类,存在一个Interpret方法,转义Context对象的信息。客户端根据信息实例化不同的Expression类,并调用其转义方法...
分类:
编程语言 时间:
2014-06-13 13:12:44
阅读次数:
418
前面介绍的全部思想都属于统计模式识别,然而统计模式识别存在2个问题:1.有的模式结构非常复杂,不能用一个矢量来表示。2.有的模式识别任务中,我们更关心怎样描写叙述它的结构特征。因此须要第二种模式识别:结构模式识别。这当中,句法模式识别主要使用形式语言来描写叙述模式结构,在理论上完备,表1是句法模式识...
分类:
其他好文 时间:
2014-06-12 12:55:50
阅读次数:
194
上次在公司内部讲《词法分析——使用正则文法》是一次失败的尝试——上午有十几个人在场,下午就只来了四个听众。本来我还在构思如何来讲“语法分析”的知识呢,但现在看来已不太可能。这个课程没有预想中的受欢迎,其原因可能是:1.课程内容相对复杂,听众知识背景与基础差异比较大。2.授课技巧不够,不能把复杂的知识...
分类:
其他好文 时间:
2014-06-02 19:40:08
阅读次数:
286
正规文法的特性
1.所有长度有限的语言都是正规的。
2.用正规文法当然能产生无限长串,其中周期重复部分的长度不大于非终止符的长度。
举个例子
在此规则之下,能生成句子
其中周期重复部分为ab,这个例子的非终止符的元素个数为2,故满足2不大于2.
自嵌入特性
我们把上下文无关文法中的正规文法去掉,剩下的那部分我们叫做真正的上下文无关文法。
自嵌入特性是区分真正的上下文无...
分类:
其他好文 时间:
2014-05-22 08:07:19
阅读次数:
275
前面介绍的所有思想都属于统计模式识别,然而统计模式识别存在2个问题:
1.有的模式结构很复杂,不能用一个矢量来表示。
2.有的模式识别任务中,我们更关心如何描述它的结构特征。
因此需要另外一种模式识别:结构模式识别。
这其中,句法模式识别主要使用形式语言来描述模式结构,在理论上完备,表1是句法模式识别与统计模式识别的对应关系,下面做介绍。
表1
串文法就是一种机器能...
分类:
其他好文 时间:
2014-05-18 14:13:52
阅读次数:
323
解释器模式(Interpreter
Pattern)是一个应用比较少的模式,在软件构建过程中,如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种文法规则下的句子,然后构建一个解释器来解释这样的句子,从而达...
分类:
其他好文 时间:
2014-05-14 11:48:39
阅读次数:
225
1、前序
真是书到用时方恨少啊,在大学的时候,虽然学过编译原理,但当时真是不懂啊,只是为了应付考试,死记硬背了一点点。现在呢,由于工作上的需要,不得不弥补一下啊。 这两天把编译原理的书又看了一遍,其实也就是主要看了文法,词法分析,语法分析而已,为了备忘,赶紧先记一下吧。
2、定义
词法分析,就是把源码中的一行行代码按照事先规定好的格式分隔成一个个单词符号(to...
分类:
编程语言 时间:
2014-05-11 21:09:58
阅读次数:
464