全局语法约束分解:原理与实现
1. 上下文无关语言与语法约束基础
上下文无关语言可以通过一组处于乔姆斯基范式(Chomsky normal form)的产生式来定义。在这种范式中,产生式的左侧只有一个非终结符,右侧则只有一个终结符或者两个非终结符。我们通常用大写字母表示非终结符,小写字母表示终结符,并且假定 S 是唯一的非终结符起始符号。
例如,对于产生式 A → Bc ,由于 c 不是非终结符,它不属于乔姆斯基范式,但我们可以将其视为 A → BZ 和 Z → c 这两个处于乔姆斯基范式的产生式的简写形式。
一个序列属于上下文无关语言,当且仅当存在一棵解析树,其根节点为起始符号 S ,并且叶子节点按顺序构成该序列。解析树的根节点标记为给定的非终结符,叶子节点标记为终结符,内部节点标记为其他非终结符。当产生式处于乔姆斯基范式时,解析树中的节点 A 要么有两个子节点 B 和 C (此时 A → BC 是语法中的一个产生式),要么有一个子节点 t (此时 A → t 是语法中的一个产生式,且 t 是终结符)。
给定一个定义上下文无关语言的语法, GRAMMAR 约束仅接受那些属于该上下文无关语言的字符串作为对 n 个变量序
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



