最长匹配原则
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最长匹配原则
最长匹配原则(LongestMatchingRule),简称LMR,是计算机科学中非常重要的搜索算法。
从字面上可以看出,它的作用是,将一个输入的字符串,从另一个字符串(又称环境串)中截取出最长的子串来匹配,匹配的子串以被匹配到的环境串的起止点作为标记。
LMR的历史可以追溯到20世纪50年代,当时,美国计算机科学家M. H. van Wijngaarden设计了一种称之为LMR的系统,其目的在于识别出规约式语言中最长的符号序列,以便确定出更小的符号序列,其中各符号本身就代表规约式语法中的一种意思。
在当时,LMR算法是为了实现自动机型程序翻译器而被提出的,它的最终目的是实现针对某一编程语言的解释器和编译器的设计。
经过几十年的发展,LMR算法发展到今天已经普遍应用于实现词法分析的程序中,原来的概念仍然保留,只是程序字符串改变了,它用于解析计算机程序的语言形式,而不是规约式语法。
在实际编程实践中,LMR最常用于自动生成词法分析程序,它通常用作一种识别算法,它能够有效辨认出文本中的有效单词和字符,这类算法的主要思路是:首先从给定的文本中,从某个特定的位置开始,从右往左搜索,在不断地从右往左滑动时,比较滑动框内字符序列与预定义的规则,并且比较每个字符串的长度,如果滑动框内的字符串,长度满足规则(也就是满足长度最长匹配规则),则认为它是
一个文本中有效词或字符,这种搜索算法称为LMR,或者有时也称为“最优匹配算法”。
LMR算法的实现分为两个主要的步骤:在第一步中,LMR算法会首先从右向左扫描整个文本,以搜索最长匹配的部分;然后在第二步中,LMR算法会将找到的最长匹配的部分,以及其对应的起始位置,以及要被匹配的规则等信息,一起返回,以完成对文本的词法分析工作。
LMR算法作为一种性能较好的搜索算法,已经被使用在诸多领域,比如自然语言处理(NLP),机器翻译,编译器设计,文本挖掘等等,它也可以应用于计算机安全领域,比如检测网络安全攻击行为,以及业界广泛使用的缓存加速技术都可以说是LMR算法的一个重要应用。
总之,LMR算法的最大优势在于它可以在很短的时间内高效而准确地识别文本中的有效词和字符。
它可以大大提高程序的运行速度,而且可以防止因文本中有多个连续复用字符而引起的误解。
所以,LMR 算法被认为是词法分析领域中最具有应用前景的算法之一。