形式语言自动机——上下文无关文法与下推自动机三
- 格式:pptx
- 大小:231.04 KB
- 文档页数:25
第三部分上下文无关语言和下推自动机前面介绍的有限自动机是计算的初级模型,它所接受的正规语言不太关心字符串自身的结构。
上下文无关文法(CFL)是一种简单的描述语法规则的递归方法,语言中的字符串由这些规则产生。
所有的正规语言都能用上下文无关文法描述,它也可以描述非正规语言。
上下文无关文法描述的语法规则更复杂多变,可以在相当大的程度上,描述高级程序设计语言的语法和其他一些形式语言。
类似正则语言对应的抽象机模型是有限自动机,CFL也有对应的抽象机模型。
CFL对应的计算模型是在有限自动机的基础上增加存储空间得到,并被设想成无限空间(对应有限自动机的有限空间),采用了一种简单的管理模式,栈(stack),这种新的计算模型(或抽象机)称为下推自动机(pushdown automata),下推是栈最典型的操作。
有必要在下推自动机中保留非确定性,确定型下推自动机不能接受所有的CFL,但给定一个CFG,容易构造一个相应的非确定型下推自动机,它在识别字符串过程中的移动模拟了文法的推导过程,这个过程称为分析(parse)。
分析不是一定需要下推自动机来完成。
CFL仍然不够通用,不能包括所有有意义的、或有用的形式语言。
采用类似第五章的技术,我们将给出一些不是CFL的简单例子,这些技术也用于解决与CFL相关的判定问题。
6 上下文无关文法6.1 上下文无关文法的定义为了描述我们在第二部分考察的各种语言,包括一些非正则语言,我们引入一种语言的递归定义方法,称为文法。
文法与我们熟悉的语言的语法描述相近,是描述语言和分析语言的有力工具。
问题:文法的形式化定义似乎可以模仿有限自动机,比如5元组或6元组之类。
例子6.1 正如我们在例子2.16中所见,字母表{a, b}上的回文语言pal可以用下面的递归方法描述:1.Λ, a, b∈pal2.对每个S∈pal,aSa和bSb也属于pal3.pal中不包含其他字符串如果将上面的符号S看成一个变量,代表了所有我们希望计算(比如某种递归算法)的pal 的元素,那么上面的规则1和规则2可以非正式地重新表述如下:1.S的值可以是Λ, a, b2.每个S可以写成aSa或bSb的形式如果我们用→表示“可以取值为”,则可以写出下面的式子:S→aSa→abSba→abΛba=abba上面的产生过程可以总结成下面的两组产生式(或称规则):S→a | b | ΛS→aSa | bSb符号“|”表示“或”的含义。
形式语言与自动机理解
形式语言是一种用来描述计算机程序的语言,它包括了一些符号和规则,这些符号和规则可以用来构造出程序的各种结构。
自动机是一种能够接受或拒绝一些特定输入的计算机模型。
形式语言与自动机理论是计算机科学中的基础理论。
形式语言主要分为正则语言、上下文无关语言、上下文相关语言和递归可枚举语言。
正则语言是最简单的一种形式语言,可以被有限状态自动机识别。
上下文无关语言可以被上下文无关文法描述。
上下文相关语言可以被上下文相关文法描述。
递归可枚举语言可以被图灵机识别。
自动机主要分为有限状态自动机和图灵机。
有限状态自动机可以接受正则语言,图灵机可以接受所有可计算语言。
有限状态自动机和图灵机是计算机理论中重要的自动机模型,它们被广泛应用于编译器、自然语言处理等领域。
在实际应用中,形式语言和自动机理论有很多用途。
比如,可以用正则表达式匹配文本,用上下文无关文法描述语法,用图灵机模拟计算过程等等。
形式语言和自动机理论不仅是计算机科学中的重要理论基础,而且在软件开发和计算机领域的其他方面也有广泛的应用。
- 1 -。