上下文无关的语法和下推接受器gydF4y2Ba

上下文无关,或短语结构,语法,虽然显然不能提供完全充分的描述gydF4y2Ba方言gydF4y2Ba语言确实具有刚才提到的理想属性。这个家的规矩gydF4y2BaggydF4y2Ba→gydF4y2BaggydF4y2Ba'在左侧包含单个非终结符,就像在有限状态语法的情况下一样,但允许gydF4y2BaggydF4y2Ba的任何词。gydF4y2BaVgydF4y2BaTgydF4y2Ba∪gydF4y2BaVgydF4y2BaNgydF4y2Ba) *。上面讨论的例子是一个上下文无关的语法。这类语法可以解释短语结构和gydF4y2Ba模棱两可gydF4y2Ba(见gydF4y2Ba9gydF4y2Ba).gydF4y2Ba

下推受体在计算机编程理论中起着关键作用gydF4y2Ba自动机gydF4y2Ba对应于上下文无关的语法。下推接受器是一种有限状态的接受器,它配备了一个附加的双向存储磁带,即所谓的下推存储。在操作开始时,这盘磁带是空白的。当自动机计算时,存储被用来分析所读句子的语法结构。打印时商店向左移动,并且只移动最后一个gydF4y2Ba象征gydF4y2Ba印完可以先读,然后下到最后,依此类推。当自动机在最终状态下停止时,如果(单向)输入磁带和存储磁带都是空的,则输入被接受。gydF4y2Ba

在这里,图灵机的四重表示形式可能会被一些更清晰的规则列表所取代,这些规则在应用程序中模拟磁带的动作。可以为下推接受器制定规则gydF4y2BaPgydF4y2Ba对于上下文无关的语言gydF4y2BalgydF4y2Ba的物品gydF4y2BaxgydF4y2BacgydF4y2BaxgydF4y2Ba-1gydF4y2Ba,其中gydF4y2BaxgydF4y2Ba是一个抽象字母表上的单词{gydF4y2Ba一个gydF4y2Ba,gydF4y2BabgydF4y2Ba},gydF4y2BaxgydF4y2Ba-1gydF4y2Ba是gydF4y2BaxgydF4y2Ba倒写。第一个这样的规则可以表述为,如果gydF4y2BaPgydF4y2Ba处于状态gydF4y2Ba问gydF4y2Ba0gydF4y2Ba扫描gydF4y2Ba一个gydF4y2Ba在输入和下推存储上的任何(定义的)符号时,它向左移动磁带,擦除gydF4y2Ba一个gydF4y2Ba从输入,打印gydF4y2Ba一个gydF4y2Ba在商店里,进入状态gydF4y2Ba问gydF4y2Ba1gydF4y2Ba.该规则的符号表达式可能是:gydF4y2Ba问gydF4y2Ba0gydF4y2Ba一个gydF4y2Ba→gydF4y2Ba一个gydF4y2Ba问gydF4y2Ba1gydF4y2Ba.另一个规则可能是这样的:如果gydF4y2BaPgydF4y2Ba处于状态gydF4y2Ba问gydF4y2Ba1gydF4y2Ba扫描gydF4y2BacgydF4y2Ba对于输入和存储中的任何东西,它向左移动输入,擦除gydF4y2BacgydF4y2Ba,对商店没有任何影响——简单地说,gydF4y2Ba问gydF4y2Ba1gydF4y2BacgydF4y2Ba→gydF4y2Ba问gydF4y2Ba2gydF4y2Ba.另一个要求是,如果gydF4y2BaPgydF4y2Ba是在gydF4y2Ba问gydF4y2Ba2gydF4y2Ba扫描gydF4y2Ba一个gydF4y2Ba在输入和gydF4y2Ba一个gydF4y2Ba存储,然后向左移动输入,擦除gydF4y2Ba一个gydF4y2Ba,向右移动存储和擦除gydF4y2Ba一个gydF4y2Ba(见gydF4y2Ba10gydF4y2Ba).很容易构造一个例子来说明在某些规则下agydF4y2Ba集gydF4y2Ba说,gydF4y2Ba一个gydF4y2BabgydF4y2BacgydF4y2BabgydF4y2Ba一个gydF4y2Ba是否被接受(见gydF4y2Ba11gydF4y2Ba).如果gydF4y2Ba问gydF4y2Ba0gydF4y2Ba一个gydF4y2BabgydF4y2BacgydF4y2BabgydF4y2Ba一个gydF4y2Ba指示计算的开始gydF4y2BaPgydF4y2Ba在初始状态下gydF4y2Ba问gydF4y2Ba0gydF4y2Ba扫描第一个gydF4y2Ba一个gydF4y2Ba在gydF4y2Ba一个gydF4y2BabgydF4y2BacgydF4y2BabgydF4y2Ba一个gydF4y2Ba在输入磁带和空白存储磁带,如果gydF4y2Ba问gydF4y2Ba2gydF4y2Ba是最终状态,那么计算是由上面给出的规则决定的(见gydF4y2Ba10gydF4y2Ba).在计算结束时,自动机处于最终状态gydF4y2Ba问gydF4y2Ba2gydF4y2Ba,两个磁带都是空白的,并且没有规则与gydF4y2Ba问gydF4y2Ba2gydF4y2Ba孤零零地在左边;gydF4y2BaPgydF4y2Ba停止,因此gydF4y2Ba一个gydF4y2BabgydF4y2BacgydF4y2BabgydF4y2Ba一个gydF4y2Ba被接受。gydF4y2Ba

对这个例子和其他容易构造的例子的反思表明,下推接受器实际上能够解析与上下文无关的语言的句子。gydF4y2Ba

上下文敏感的语法和线性有界的接受器gydF4y2Ba

第四种受体,主要是数学上的,而不是应用上的,是有界带-的双向受体gydF4y2Ba也就是说,gydF4y2Ba胶带的长度不超过一个线性gydF4y2Ba函数gydF4y2Ba输入长度的。这些是线性有界的受体。在当前的分类方案中,它们对应于上下文敏感语法。与上下文无关的语法不同,后一种系统使用规则gydF4y2BaggydF4y2Ba→gydF4y2BaggydF4y2Ba,其中非终结符号ν∊VgydF4y2BaNgydF4y2Ba在gydF4y2BaggydF4y2Ba可重写只在一个gydF4y2Ba上下文gydF4y2BaxgydF4y2BawgydF4y2BaygydF4y2Ba;因此gydF4y2BaggydF4y2Ba→gydF4y2BaggydF4y2Ba的形式gydF4y2BaxgydF4y2BavgydF4y2BaygydF4y2Ba→gydF4y2BaxgydF4y2BawgydF4y2BaygydF4y2Ba,gydF4y2BaxgydF4y2Ba,gydF4y2BaygydF4y2Ba,gydF4y2BawgydF4y2Ba∊(VgydF4y2BaTgydF4y2Ba∪VgydF4y2BaNgydF4y2Ba) *。线性边界自动机所接受的上下文敏感语言的一个例子是复制语言gydF4y2BaxgydF4y2BacgydF4y2BaxgydF4y2Ba.gydF4y2Ba

递归可枚举语言家族包括上下文敏感语言,上下文敏感语言又包括无上下文语言,无上下文语言最后包括常规或有限状态语言。没有其他的gydF4y2Ba层次结构gydF4y2Ba对相应的受体进行了深入的研究。gydF4y2Ba