- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
油气田内设施的安全管理技术研究.
油气田内设施的安全管理技术研究 摘要:构造接收复杂语言的自动机是困难的,而复杂语言可以通过简单的语言进行语言间的运算而得到,文章根据右线性语言、上下文无关语言和上下文相关语言对联合,连接和迭代运算是封闭的特点,提出了利用简单自动机构造复杂自动机的方法。 关键词:语言;语言的运算;语言运算的封闭性;有限状态自动机;下推自动机 在形式语言和自动机的理论中,构造自动机识别和接收一个语言是研究的重点。对于复杂的语言,直接构造对应的自动机容易造成不一致性。如果一个语言是由3种基本运算中的某一种运算得到的,可以将该语言分解为比较简单的语言,先构造出接收简单语言的自动机,再利用语言运算的封闭性原理,就可以根据简单自动机直接构造出复杂自动机。一、构造下推自动机 若语言L1和L2是两个上下文无关语言,分别接收语言L1和L2的下推自动机为:M1=M2= 假设Q1和Q2相交,Γ1和Γ2不相交;下推自动机以空栈方式接收语言。利用联合运算得到的语言构造PDAM= 其中δ函数为:δ=δ=。对于Q1,中所有的状态q,Σ1U{ε}中的α,δ=δ1;对于Q2中所有的状态q,Σ2U{ε}中的α,δ=δ2。 该PDAM包括了原来M1和M2的所有δ函数,增加了2个扫描ε的δ函数,使得:从PDAM的开始状态出发,通过两个ε动作:δ=和δ=,可以选择到达M1和M2的开始状态q1或q2,并将栈底符号Z0改为M1和M2原来栈底符号Z01或Z02,然后使用M1和M2的自己的δ函数,到达M1和M2的接收格局。显然PDAM接收的语言是L和L的联合。利用连接运算得到的语言构造PDAM= 其中δ函数为:对于Q1中所有的状态q,Σ1U{ε}中的α,δ=δ1。对于M1最后的状态转换函数:δ1=。增加:δ=对于Q2中所有的状态q,Σ2U{ε}中的b,δ=δ2。 该PDAM包括了原来M1和M2的所有δ函数,增加了1个δ函数,使得:从M1的开始状态q1出发,使得从M1自己的δ函数,接受了语言L1的串后,使得改造的函数δ=,到达M2的开始状态q2,栈底变为M2的栈底Z02,然后使用M2的自己的δ函数,借接收语言L2的串。显然PDAM接收的语言是L和L的连接。利用迭代运算得到的语言构造PDAM= 其中δ函数为:δ=。对于Q1中所有的状态q,Σ1U{ε}中的α,δ=δ1。对于M1最后的状态转换函数:δ1=。增加:δ=。 该PDAM包括了原来M1和M2的所有δ函数,增加了2个δ函数,使得:从M1的开始状态q1出发,使得新加的δ=,以便接收空串ε,或者使用M1自己的δ函数接收了语言L1的某个串后,以将栈置空,或者使用新加的函数δ=,重新到达M1的开始状态q1,栈底还是M1的栈底Z01,以便迭代地接收输入串。显然PDAM接收的语言是L的闭包。二、编写一个识别浮点数的自动机 编写一个词法分析器:根据需要写出正规定义;根据正规定义画出转换图;根据转换图写出词法分析器。本文详细讨论面向过程的语言来实现一个词法分析器。 我们需要一个nextchar函数,取得缓存中下一个等待分析的字符,这个函数完成2个任务:让输入指针向前移动一位;返回输入指针指向的字符。 定义一个变量token_beginning,在每个状态转换图开始的时候,记录输入指针的位置,定义forward变量作为输入指针 状态转换图被实现成为代码之后,每个状态都有属于自己的一块代码,这些代码按顺序完成以下工作:读取一个字符,通过nextchar函数。读取的字符,如果它和当前状态的边上的标记相同,那么状态将转换到边所指向的状态,具体实现只需要一个语句就是state=xxx;如果当前状态的所有边的标记和这个读取字符不一样,那么表示没有找到token,这时候需要调用fail函数。 fail函数完成这样的功能:指针回移,完成forward=token_beginning的操作。找到适当的开始状态。假定所有的转换图都被尝试过并且无法匹配,此时会调用一个发现错误的小程序来报告错误。 请不要随意添加行为到各个状态所持有的代码中,应该以转换图中表示的行为为准。 定义一个全局变量lexical_value,用于保存一个指针,这个指针由install_id和install_num两个函数中的一个返回。 定义两个整形变量start,state,分别表示一个转换图的开始状态和当前的状态。 nexttoken,这是词法分析器的主程序。三、结束语 本文提出了根据语言的运算的封闭性构造自动机的方法;可以直接利用简单自动机构造复杂的自动机。如果一个语言是由3种运算复合运算而成的,可以将运算分解,构造更为复杂的各类自动机。浅议汽车运输企业职工培训的问题与对策吴登坤 摘要:随着社会主义市场经济的不断发展,特别是加入世界贸易组织后,汽车运输市场的竞
原创力文档


文档评论(0)