《展开量化以控制自动机的入度和/或出度.pdf》由会员分享,可在线阅读,更多相关《展开量化以控制自动机的入度和/或出度.pdf(37页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103443767 A(43)申请公布日 2013.12.11CN103443767A*CN103443767A*(21)申请号 201280013925.9(22)申请日 2012.01.2461/436,051 2011.01.25 USG06F 9/45(2006.01)(71)申请人美光科技公司地址美国爱达荷州(72)发明人许郡君 保罗格伦迪宁(74)专利代理机构北京律盟知识产权代理有限责任公司 11287代理人孙宝成(54) 发明名称展开量化以控制自动机的入度和/或出度(57) 摘要揭示用于编译程序的设备、系统和方法。一个此类编译程序将人类可读表达式剖析成语。
2、法树并将所述语法树转换成具有向内转变和向外转变的自动机。转换可包含根据入度限制来展开量化,其中入度限制包含对到所述自动机的状态的转变的数目的限制。所述编译程序也可将所述自动机转换成用于对平行机编程的映像,且发布所述映像。揭示额外的设备、系统和方法。(30)优先权数据(85)PCT申请进入国家阶段日2013.09.17(86)PCT申请的申请数据PCT/US2012/022441 2012.01.24(87)PCT申请的公布数据WO2012/103148 EN 2012.08.02(51)Int.Cl.权利要求书4页 说明书19页 附图13页(19)中华人民共和国国家知识产权局(12)发明专利申。
3、请权利要求书4页 说明书19页 附图13页(10)申请公布号 CN 103443767 ACN 103443767 A1/4页21.一种计算机实施方法,其包括:将量化转换成自动机,其中转换包含展开所述量化以控制所述自动机的入度;以及将所述自动机转换成对应于目标装置的机器代码。2.根据权利要求1所述的计算机实施方法,其进一步包括:将表达式剖析成包含所述量化的非语言特定表示。3.根据权利要求2所述的计算机实施方法,其中将表达式剖析成非语言特定表示包括:将正则表达式剖析成语法树。4.根据权利要求1所述的计算机实施方法,其中转换包含当所述量化的重复表达式为可空时将所述量化展开为具有所述重复表达式的不可。
4、空形式的量化,所述不可空形式可被匹配零次。5.根据权利要求1所述的计算机实施方法,其中将所述自动机转换成机器代码包括:将所述自动机转换成经配置以对平行机编程的映像。6.根据权利要求5所述的计算机实施方法,其进一步包括:发布所述映像。7.根据权利要求1所述的计算机实施方法,其中展开所述量化以控制所述自动机的入度包括:根据入度限制来展开所述量化。8.根据权利要求7所述的计算机实施方法,其中所述入度限制包含对到所述自动机的状态的转变的数目的限制。9.根据权利要求1所述的计算机实施方法,其中展开所述量化以控制所述自动机的入度包括:基于所述目标装置的入度约束来进行展开。10.根据权利要求1所述的计算机实。
5、施方法,其中所述量化为正则表达式。11.根据权利要求1所述的计算机实施方法,其中展开所述量化以控制所述自动机的入度包括:基于阈值来展开所述量化以控制所述自动机的入度。12.根据权利要求11所述的计算机实施方法,其中所述阈值是基于所述平行机的硬件限制。13.一种计算机可读媒体,其包含指令,所述指令在由所述计算机执行时使所述计算机执行包括以下各者的操作:将量化转换成自动机,其中转换包含展开所述量化以控制所述自动机的出度;以及将所述自动机转换成对应于目标装置的机器代码。14.根据权利要求13所述的计算机可读媒体,其中展开包含限制所述自动机的每一状态的向外转变使之低于阈值数目。15.根据权利要求13所。
6、述的计算机可读媒体,其中展开包含最小化所述自动机的每一状态的向外转变。16.根据权利要求13所述的计算机可读媒体,其中转换包含当所述量化的重复表达式为可空时将所述量化展开为具有所述重复表达式的不可空形式的量化,所述不可空形式可被匹配零次。17.根据权利要求13所述的计算机可读媒体,其中转换包含:当所述量化可与单个数目的循环相匹配时,展开所述量化以形成自动机,所述自动机具有表示数目等于所述单个数目的连续地连接的表达式的状态,其中所述表达式对应于所权 利 要 求 书CN 103443767 A2/4页3述量化的重复表达式。18.根据权利要求13所述的计算机可读媒体,其中当所述量化可与多个数目的循环。
7、相匹配时,所述多个数目的循环包含第一数目n1个循环和第二数目n2个循环,展开所述量化包含:将所述量化分裂成可与n1-1个循环相匹配的第一量化以及可与一个到n2-n1+1个循环相匹配的第二量化。19.根据权利要求13所述的计算机可读媒体,其中所述指令使所述计算机执行包括以下各者的操作:将映像加载到平行机上。20.根据权利要求13所述的计算机可读媒体,其中所述指令使所述计算机执行包括以下各者的操作:将所述映像存储于计算机可读媒体上。21.一种计算机,其包括:存储器,其上面存储有软件;以及处理器,其通信地耦合到所述存储器,其中所述软件在由所述处理器执行时使所述处理器:将量化转换成自动机,其中转换包含。
8、展开所述量化以控制所述自动机的入度或出度;以及将所述自动机转换成对应于目标装置的机器代码。22.根据权利要求21所述的计算机,其中所述软件使所述处理器通过在所述自动机中针对向外转变对向内转变进行取舍来控制所述入度和所述出度。23.根据权利要求22所述的计算机,其中限制每一状态的所述向内转变使之在展开时低于阈值数目。24.根据权利要求22所述的计算机,其中限制所述入度使之与所述出度成一比率。25.根据权利要求24所述的计算机,其中限制所述入度使之与所述出度成所述比率,直到达到所述自动机的状态的向内转变的阈值为止。26.一种系统,其包括:计算机,其经配置以:将量化转换成自动机,其中转换包含展开所述。
9、量化以控制所述自动机的入度或出度;以及将所述自动机转换成对应于目标装置的机器代码。27.根据权利要求26所述的系统,其中所述机器代码包括经配置以对平行机编程的映像,且进一步包括:通信地耦合到所述计算机且经配置以将所述映像加载到平行机上的装置。28.根据权利要求26所述的系统,其中展开所述量化以控制所述自动机的入度包括:根据入度限制来展开所述量化。29.根据权利要求28所述的系统,其中所述入度限制包含对到所述自动机的状态的转变的数目的限制。30.根据权利要求26所述的系统,其中展开所述量化以控制所述自动机的入度包括:权 利 要 求 书CN 103443767 A3/4页4基于所述目标装置的入度约。
10、束来进行展开。31.根据权利要求26所述的系统,其中展开所述量化以控制所述自动机的入度包括:基于阈值来展开所述量化以控制所述自动机的入度。32.根据权利要求31所述的系统,其中所述阈值是基于所述平行机的硬件限制。33.一种通过使用权利要求1所述的方法产生的映像编程的平行机。34.一种计算机实施方法,其包括:将量化转换成自动机,其中转换包含展开所述量化以控制所述自动机的出度;以及将所述自动机转换成对应于目标装置的机器代码。35.根据权利要求34所述的计算机实施方法,其进一步包括:将正则表达式剖析成语法树。36.根据权利要求34所述的计算机实施方法,其中将所述自动机转换成机器代码包括:将所述自动机。
11、转换成经配置以对平行机编程的映像。37.根据权利要求36所述的计算机实施方法,其进一步包括:发布所述映像。38.根据权利要求34所述的计算机实施方法,其中展开所述量化以控制所述自动机的出度包括:根据出度限制来展开所述量化。39.根据权利要求38所述的计算机实施方法,其中所述出度限制包含对从所述自动机的状态向外的转变的数目的限制。40.根据权利要求34所述的计算机实施方法,其中展开所述量化以控制所述自动机的出度包括:基于所述目标装置的出度约束来进行展开。41.根据权利要求34所述的计算机实施方法,其中展开所述量化以控制所述自动机的出度包括:基于阈值来展开所述量化以控制所述自动机的出度。42.根据。
12、权利要求41所述的计算机实施方法,其中所述阈值是基于所述平行机的硬件限制。43.一种计算机可读媒体,其包含指令,所述指令在由所述计算机执行时使所述计算机执行包括以下各者的操作:将量化转换成自动机,其中转换包含展开所述量化以控制所述自动机的入度;以及将所述自动机转换成对应于目标装置的机器代码。44.根据权利要求43所述的计算机可读媒体,其中展开包含限制所述自动机的每一状态的向内转变使之低于阈值数目。45.根据权利要求43所述的计算机可读媒体,其中展开包含最小化所述自动机的每一状态的向内转变。46.根据权利要求43所述的计算机可读媒体,其中转换包含当所述量化的重复表达式为可空时将所述量化展开为具有。
13、所述重复表达式的不可空形式的量化,所述不可空形式可被匹配零次。47.根据权利要求43所述的计算机可读媒体,其中转换包含:当所述量化可与单个数目的循环相匹配时,展开所述量化以形成自动机,所述自动机具有表示数目等于所述单个数目的连续地连接的表达式的状态,其中所述表达式对应于所述量化的重复表达式。权 利 要 求 书CN 103443767 A4/4页548.根据权利要求43所述的计算机可读媒体,其中当所述量化可与多个数目的循环相匹配时,所述多个数目的循环包含第一数目n1个循环和第二数目n2个循环,展开所述量化包含:将所述量化分裂成可与n1-1个循环相匹配的第一量化以及可与一个到n2-n1+1个循环相。
14、匹配的第二量化。权 利 要 求 书CN 103443767 A1/19页6展开量化以控制自动机的入度和或出度0001 优先权主张0002 本专利申请案主张2011年1月25日申请的题为“展开量化以控制自动机的入度和或出度(UNROLLING QUANTIFICATIONS TO CONTROL IN-DEGREE ANDOR OUT DEGREE OFAUTOMATON)”的美国临时专利申请案第61436,051号的优先权的利益,所述美国临时专利申请案的全文特此以引用方式并入本文中。技术领域背景技术0003 有限状态机(FSM)(也被称作有限状态自动机、自动机或简称为状态机)为状态、状态之间的。
15、转变和动作的表示。有限状态机可用以设计数字逻辑、计算机程序,或用于平行机的映像。有限状态机为由有限数目的状态、所述状态之间的转变和输出组成的行为模型。有限状态机可表示为图,其中所述图的顶点对应于有限状态机的状态,且所述图的边对应于归因于到有限状态机的一个或一个以上输入而发生的状态之间的转变。有限状态机还可具有概率转变、模糊状态或其它异事。有限状态机具有有限内部存储器、输入特征和可选输出特征。具有输出的有限状态机可被称作有限状态转换器。0004 有限状态机的应用包含电子设计自动化、通信协议设计、生物学和人工智能研究,以及用以描述自然语言的文法的语言学。发明内容附图说明0005 图1说明根据本发明。
16、的各种实施例的用于可使用自动机将源代码转换成机器代码的编译程序的流程图的实例。0006 图2说明根据本发明的各种实施例的由编译程序所使用的自动机的实例。0007 图3说明根据本发明的各种实施例的用于展开量化的方法的实例。0008 图4A到4C说明根据本发明的各种实施例的用于展开的量化的实例自动机。0009 图5说明根据本发明的各种实施例的平行机的实例。0010 图6说明根据本发明的各种实施例的实施为有限状态机引擎的图5的平行机的实例。0011 图7说明根据本发明的各种实施例的图6的有限状态机引擎的块的实例。0012 图8说明根据本发明的各种实施例的图7的块的行的实例。0013 图9说明根据本发。
17、明的各种实施例的图8的行的成对群组的实例。0014 图10说明根据本发明的各种实施例的供编译程序用以将正则表达式转换成经配置以对图5的平行机编程的映像的方法的实例。0015 图11A和11B说明根据本发明的各种实施例的对应于量化的自动机的实例图。说 明 书CN 103443767 A2/19页70016 图12说明根据本发明的各种实施例的对应于量化的自动机的另一实例图。0017 图13说明根据本发明的各种实施例的对应于量化的自动机的又一实例图。0018 图14说明根据本发明的各种实施例的对应于量化的自动机的再一实例图。0019 图15说明根据本发明的各种实施例的计算机的实例。具体实施方式002。
18、0 以下描述和图式充分地说明了特定实施例以使所属领域的技术人员能够将其付诸实践。其它实施例可并有结构、逻辑、电、过程和其它改变。一些实施例的部分和特征可包含于其它实施例中或可替代其它实施例的部分和特征。权利要求书中所陈述的实施例涵盖所述技术方案的所有可用等效物。0021 本文档尤其描述了将源代码转换成有限状态机的机器代码实施方案的编译程序。机器代码可对应于目标装置,因为机器代码经配置以在目标装置上实施通过源代码描述的功能。在一实例中,目标装置为平行机,且机器代码包括用于平行机的映像。在另一实例中,目标装置包括具有冯诺依曼架构的计算机,且机器代码包括供计算机中的处理器执行的指令。0022 在任何。
19、情况下,编译程序都会将源代码转换成体现通过源代码描述的功能的有限状态机。在编译源代码的过程中,编译程序将源代码转换成自动机。使用自动机,编译程序可识别并组合源代码中的冗余,以便优化通过机器代码实施的所得有限状态机。另外,编译程序可将在形成自动机时目标装置的方面或限制考虑进来,以便减少所得机器代码的复杂性并提高目标装置的操作效率。0023 图1说明用于实例编译程序的流程图100。所述编译程序采用源代码作为输入且产生机器代码以在目标装置上实施通过源代码描述的功能。在一个实例中,目标装置包括如下文关于图5到9所描述的平行机。所述平行机包含可设定为多个状态中的一者的多个可编程元件。用于平行机的机器代码。
20、包括用于设定所述可编程元件中的一者或一者以上的状态的映像。在另一实例中,目标装置为具有冯诺依曼架构的计算机。所述计算机包含耦合到一个或一个以上存储装置的一个或一个以上处理器,所述一个或一个以上存储装置上具有供所述一个或一个以上处理器执行的软件。用于冯诺依曼架构的机器代码包括供所述一个或一个以上处理器执行的指令。在下文关于图15来描述具有冯诺依曼架构的实例计算机。在任何情况下,编译程序都会通过将自动机用作中间转换来产生机器代码。编译程序使用自动机以便尤其优化所得FSM且转而优化机器代码。0024 在一实例中,源代码描述用于识别一群符号内的符号的型样的搜索字符串。为了描述所述搜索字符串,源代码可包。
21、含多个正则表达式(regex)。正则表达式可为用于描述符号搜索型样的字符串。正则表达式广泛用在各种计算机领域中,例如程序设计语言、文本编辑器、网络安全和其它领域。在一实例中,由编译程序支持的正则表达式包含用于无结构数据的搜索的搜索准则。无结构数据可包含以下数据,其为自由形式的且无索引施加于数据内的字。字可包含数据内的字节(可打印和不可打印)的任何组合。在一实例中,编译程序可支持用于实施正则表达式的多种不同的源代码语言,包含Perl(例如,Perl相容正则表达式(PCRE)、PHP、Java和.NET语言。0025 返回参看图1,在框102处,编译程序可剖析源代码以形成有关系连接的算子的布说 明。
22、 书CN 103443767 A3/19页8置。剖析源代码可创建所述源代码的一般表示。在一实例中,所述一般表示包括源代码中的呈被称为语法树的树形图形式的正则表达式的经编码表示。本文中所描述的实例将所述布置称为语法树(也被称为“抽象语法树” ),然而,在其它实例中,可使用具体语法树或其它布置。0026 由于如上文所提及,编译程序可支持多种语言的源代码,因此,不管是何种语言,剖析都会将源代码转换成非语言特定表示,例如语法树。因此,由编译程序进行的其它处理(框104、106、108、110)可从共同的输入结构来起作用,而不管源代码的语言。0027 语法树包含有关系连接的多个算子。语法树可包含多种不同。
23、类型的算子,其中不同类型的算子对应于通过源代码实施的不同功能。也就是说,不同算子可对应于通过源代码中的正则表达式实施的不同功能。0028 在框104处,将语法树转换成自动机。自动机包括FSM的软件模型,且可因此分为确定性或非确定性。确定性自动机在给定时间具有单个执行路径,而非确定性自动机具有多个同时的执行路径。自动机包括多个状态。为了将语法树转换成自动机,将语法树中的算子和算子之间的关系转换成状态和状态之间的转变。0029 为了有效地利用目标装置的元件,编译程序可基于目标装置的元件的方面或限制来形成自动机。举例来说,所述元件可对转变到或转变出自动机中的给定状态的数目具有某些限制。在其它实例中,。
24、硬性限制可能不存在,但编译程序可能会限制转变到或转变出给定状态的数目,以便简化编译程序产生机器代码和或提高目标装置上的机器代码的操作效率所需的处理。在下文关于图3和4A到4C来提供关于限制转变到或转变出给定状态的更多细节。0030 一旦已形成自动机,在框106处,便可优化自动机以尤其减少其复杂性和大小。可尤其通过组合等效状态来优化自动机。0031 在框108处,将自动机转换成用于目标装置的机器代码。在一个实例中,机器代码包括用于冯诺依曼架构中的处理器的可执行指令。在此,机器代码可包括可执行程序。在另一实例中,机器代码可包括经配置以对平行机中的硬件元件编程的位。在此,机器代码可包括供加载到平行机。
25、上的映像。0032 在框110处,可由编译程序发布机器代码。在一实例中,可通过将机器代码保存到计算机可读媒体来发布机器代码。在另一实例中,可通过将机器代码发送到另一装置(例如,用于将机器代码加载到平行机上的加载程序)来发布机器代码。在再一实例中,可通过将机器代码加载到平行机上来发布机器代码。在又一实例中,可通过在显示装置上显示机器代码来发布机器代码。0033 在一实例中,所述编译程序可通过用于具有冯诺依曼架构的计算机的指令来实施。这些指令可使所述计算机上的处理器实施所述编译程序的功能。举例来说,所述指令在由处理器执行时可使处理器对可由处理器存取的源代码执行如框102、104、106、108和1。
26、10中所描述的动作。具有冯诺依曼架构的实例计算机展示于图15中且在下文描述。0034 可以用源代码描述的一类正则表达式包含量化。量化在此项技术中为众所周知的,且用以描述重复型样。作为一实例,“A(B)n1,n2C”为一般正则表达式,其中A、B和C为子表达式,且“(B)n1,n2”包括量化。如本文中所描述,使用大写字母来表示正则表达式或正则表达式的一部分(例如,子表达式)。可将双引号添加到正则表达式或子表达式说 明 书CN 103443767 A4/19页9周围以避免混淆。因此,描述表达式的大写字母可对应于用于多个输入符号的搜索字符串。举例来说,表达式“A”可对应于输入字符串“abbc”。003。
27、5 此外,应理解,术语表达式和子表达式在本文中仅用于关系描述(例如,子表达式为表达式的一部分),且术语表达式和子表达式不应限于任何特定长度、语法或字符数目。明确地说,源代码可包含大量字符(包含元字符和搜索字符),其中整组字符或其任何个别部分可被视为“表达式”。举例来说,以下各者中的每一者可被视为表达式:“a(bbld?)5,20c”、“(b)0,10”、“(bld)”和“b”。0036 将量化以正则表达式表达为“(B)n1,n2”,其中B为子表达式,且n1和n2为指定允许前面的子表达式出现多少次的整数。B在本文中被称作重复子表达式,因为B为重复了由n1和n2指定的次数的子表达式。为了匹配量化“。
28、(B)n1,n2”,必须匹配重复子表达式Bn1到n2次。举例来说,正则表达式“(B)5,7)”将要求子表达式B匹配5、6或7次。在正则表达式“A(B)n1,n2C”中,子表达式A在本文中被称作驱动表达式,因为子表达式A在被匹配时转变到量化。另外,为了继续重复和递增针对所述量化的计数,必须连续地匹配所述量化的重复子表达式。也就是说,当在所述量化的给定循环期间不匹配重复子表达式时,所述量化结束。在一实例中,符号“?”也对应于量化,其中在“?”之前的符号可被识别一次或零次。0037 图2说明对应于具有量化的正则表达式的实例自动机200。自动机200对应于正则表达式“abb?(blc)1,2”。自动机。
29、200包含初始状态202和最终状态212、204。所述最终状态212、204在图2中被识别为双重圆圈。最初先激活初始状态202并在输入符号“a”之后即刻使其转变到状态206。在输入符号“b”时,状态206转变到状态208和状态210两者。在输入符号“b”时状态208转变到状态210,且在输入符号“b”或“c”时,状态210转变到状态212。同样,在输入符号“b”或“c”时,自动机200从状态212转变到状态204。状态212和204被识别为最终状态,因为状态212或状态204的激活指示自动机200所对应于的正则表达式“abb?(blc)1,2”的匹配。0038 图3说明用于将语法树转换成自动机。
30、的方法300的实例。明确地说,方法300说明用于通过展开量化算子(在本文中也被简称作“量化”)将量化转换成自动机的方式。举例来说,展开量化可包含用非量化语法来重写所述量化并将所述非量化语法转换成自动机。举例来说,“(blc)1,2”可重写为“(blc)(blc)?”。展开的优点可包含所得自动机为有向非循环图(DAG),其可较易于在目标装置中实施。0039 方法300在框302处开始,在框302处,当量化的重复子表达式为可空(nullable)时,将量化转换成不可空形式。如果重复子表达式为不可空,那么方法前进到304而不转换所述量化。当表达式可被空字符串匹配时,所述表达式为可空的。举例来说,表达。
31、式(bcl)可被输入符号“bc”或空字符串匹配。因此,表达式(bcl)为可空的,因为所述表达式可被空字符串匹配。为了将对应于可空的重复子表达式的量化转换成具有不可空的重复子表达式的量化,移除重复子表达式的可空部分。举例来说,表达式(bcl)变成(bc)。另外,用以匹配量化的循环的数目从n1,n2修改成0,n2。举例来说,表达式“ABn1,n2C”转换成“AB0,n2C”,其中B为B的不可空形式。在一实例中,量化“a(bcl)3,5d”可转换成“a(bc)0,5d”。0040 在一实例中,在框304处,任选地确定是否将展开量化。如上文所提及,展开量化说 明 书CN 103443767 A5/19。
32、页10可包含用非量化语法来重写所述量化并将所述非量化语法转换成自动机。量化的此重写的结果为通过通用状态(例如,状态机元件)且不通过特殊目的状态(例如,计数器)来实施所得的展开语法。然而,在一些情形中,可希望通过特殊目的元件(例如,计数器)来实施量化且因此不展开量化。在其它情况下,展开量化。当不展开量化时,针对所述量化,方法300结束。当可至少部分展开量化时,方法300继续到框306。以下条件指示何时可通过计数器实施且何时量化不通过计数器实施且得以展开的实例。应理解,尽管下文的某些情形描述为可通过计数器实施,但在其它实例中,这些情形可通过展开来实施。大体上,在需要时,所有量化均可通过展开来实施。。
33、0041 在确定是否可使用计数器来实施量化之前,如果(B)包含空字符串,那么量化“Bn1,n2”重写为“B0,n2”,其中B为B的非空字符串版本,(B)=(B)-。举例来说,“(bcl)10,20”可重写为“(bc)0,20”,因为这些正则表达式接受完全相同的数据。0042 1.当(n1=0,n2=-1)时,所述量化将通过展开来实施。在此,不需要计数器。0043 2.当(n1=1,n2=-1)时,所述量化将通过展开来实施。在此,不需要计数器。0044 3.当(n11,n2=-1)时,所述量化将分裂成两个正则表达式Bn1-1和B+,因为Bn,-1等于Bn1-1B+。接着可通过计数器来实施量化Bn。
34、1-1,而将通过展开来实施B+。0045 4.当(n1=0,n20)时,将所述量化修改成(B1,n2)?,因为(B1,n2)?等于B0,n2。接着可通过计数器来实施不可空B1,n2。0046 5.当(n10,n20)时,可通过计数器将所述量化实施为Bn1,n2。0047 总言之,在没有修改的情况下可通过计数器实施的量化可被写成Bn1,n2,其中B为不可空的,n10、n20且n1n2。0048 在框306处,展开可与单个数目的循环相匹配的量化以形成具有多个连续地连接的重复子表达式的自动机。具有单个数目的循环的量化对应于n1等于n2的量化。举例来说,量化“Bn1”可展开为“BB.B”,具有B的n1。
35、个副本。0049 在框308处,当n1不等于n2时,且当n1等于1且n2大于1时,展开可与多个数目的循环相匹配的量化。当n1大于1时,将所述量化分裂成可与n1-1个循环相匹配的第一量化以及可与一个到n2-n1+1个的循环相匹配的第二量化。举例来说,量化Bn1,n2(其中n11、n21且n1n2)可与多个数目的循环相匹配,明确地说,从n1到n2个循环。此量化Bn1,n2可分裂成以下量化:Bn1-1B1,n2-n1+1。第一量化为可与数目等于n1-1个的循环相匹配的重复子表达式B。将此第一量化与第二量化串接,所述第二量化具有可与数目为一个到n2-n1+1个的循环相匹配的重复子表达式。如306处所述,展开第一量化Bn1-1。0050 可基于所得自动机的入度(in-degree)和或出度(out-degree)来展开第二量化B1,n2-n1+1。展开量化可创建具有大入度或大出度的状态。在一实例中,入度对应于到自动机的状态的转变的数目,且出度对应于从自动机的状态发生的转变的数目。因此,可展开第二量化以控制当将第二量化转换成自动机时进(入度)或出(出度)状态的转变。举例来说,可展开量化以限制每一展开状态的入度使之低于阈值数目。举例来说,限制入度可经执行以考量目标装置中的元件的方面和或限制。此外,在展开期间限制入度可减少编译程序的后续处理。说 明 书CN 103443767 A10。