嵌套的单词

又称可视下推语言

什么是嵌套单词?

嵌套单词是用a和a表示数据线性排序和a分层嵌套匹配个项目。具有这种双线性层次结构的数据示例包括执行结构化程序,注释语言数据,和HTML/XML文档。嵌套单词由一系列线性顺序的位置组成嵌套边连接电话收益(或打开的标签封闭式袋子).边不会交叉,从而创建正确嵌套的层次结构,我们允许一些边挂起。此嵌套结构可以是唯一的由指定位置类型的序列表示(调用、返回、,和内部构件)。嵌套单词概括了单词和有序树,并且允许单词和树操作。

嵌套字自动机---嵌套词的有限状态接受器,定义嵌套单词的正则语言类。这个班有所有经典正则词的吸引人的理论性质语言享受:确定性嵌套词自动机和它们的非确定性对应;该类在联合、交叉、,互补、串联、Kleene-*、前缀和语言同态;成员、空虚、语言包容性和语言等价性都是可判定的;和中的可定义性一元二阶逻辑正好对应于有限状态的可识别性。这些结果概括为无限的嵌套单词也可以。

它们与无上下文语言的单词有什么关系?

给定一种由字母表上的嵌套单词组成的语言L,线性编码嵌套单词的L’给出了一种语言,该语言位于标记的字母表上,由标记了位置类型的符号。如果L是嵌套词的正则语言,那么L'是无上下文的。事实上,接受L’的下推自动机有一个特殊的结构:读取调用时,自动机必须推送一个符号,同时读取返回符号,它必须弹出一个符号(如果堆栈非空),而读取内部符号时,它只能更新其控制状态。我们称之为自动机可视下推自动机他们接受的单词语言类别明显的下推语言(VPL)。既然我们的自动机可以确定,VPL对应于确定性无上下文语言(DCFL)的一个子类。VPL概括了段落语言、括号语言、,和平衡的语言,以及它们具有比CFL、DCFL或段落语言。

我们认为,对于结构化程序的算法验证,与其将节目视为无语境的语言而非文字,不如应将其视为嵌套单词的常规语言(或等效的,明显的下推语言),这将允许许多属性的模型检查(例如堆叠检查、前后条件)在现有规范逻辑中无法表达。

通常,下推自动机有两个不同的用途:发现层次匹配,以及处理/查询匹配。在仅与第二个目的相关的应用程序中(就像在程序分析中一样),可以用NWA代替下推自动机有很多好处。

它们与有序树有什么关系?

传统上对具有双线性层次结构的数据进行建模使用二进制,更广泛地说,使用有序的未分类树,并使用树自动机进行查询。在有序树中,具有相同父节点的节点是线性排序的,和经典的树遍历,如中缀(或从左到右的深度优先)可用于定义所有节点的隐式顺序。事实证明,树篱,其中树篱是一系列有序的树,是一类特殊的嵌套词,即对应于Dyck单词,以及规则对冲语言对应于平衡语言。

对于文档处理,嵌套单词确实有很多优点过度有序的树。基于树的表示隐式假设输入线性数据可以解析为树,因此无法表示和处理可能无法正确分析。单词操作,如前缀、后缀和串联,虽然文档处理很自然,但没有类似的树操作。其次,树自动机可以自然地表达对标签序列的约束沿着分层路径,也沿着从左到右的兄弟姐妹,但他们很难捕获约束指的是全局线性顺序。例如,对p1、……进行模式化的查询,。。。pk以该顺序出现在文档中编译成确定性的字自动机(因此确定性NWA)线性尺寸,但标准此查询的确定自下而上树自动机的大小必须是k的指数。NWA可以看作是一种树自动机这样,自下而上树自动机和自上而下树自动机都是特殊情况。这些结果意味着查询可以更简洁在嵌套单词视图中编码,具有复杂性优势嵌套的单词自动机从左到右读取单词,进行处理当它们到达时,筑巢边缘。这与SAX相匹配API for XML,因此在流媒体中有着自然的用途算法。

工具书类

嵌套单词的模型经过了几次迭代:请参见可视的下推式语言; 阿鲁尔和马都苏丹;STOC 2004;向单词添加嵌套结构; 阿鲁尔和马都苏丹;DLT 2006。我们建议阅读这个统一的完整版本(美国医学会杂志,2009年)。CSR 2007受邀演讲也是一个很好的起点。

本页的目的是跟踪对这一主题的广泛后续研究。通过电子邮件向我发送评论和/或建议添加内容。

工具

VPA/NWA的其他决策问题

同余与最小化

时间和定点逻辑;表达能力

程序分析规范

XML处理和树自动机

传感器

嵌套的树

具有多个嵌套的单词

使用调用/返回可见性的新结果

一个具有挑战性的开放问题(现已解决!)

考虑以下决策问题:给定嵌套单词的两种正则语言L1和L2,在标记的字母表上是否存在一种规则的语言R交叉口(R,L1)等于L2?即使在L1是所有匹配良好的单词的集合的特殊情况下,这一点也不可判定。动机如下:通常,为了检查输入是否属于L2,处理器需要堆栈。但是假设我们已经对输入有了一些额外的了解,它属于集合L1(例如,我们可能知道输入匹配良好),这个知识可以用于构造一个DFA a,使得对于L1中的输入,a能够决定L2中的成员身份。这个问题的灵感来自Segoufin和Vianu的论文“验证流式XML文档”,PODS 2002,这也提供了部分解决方案。

最近,Eryk Kopczynski证明了该问题的不可判定性:看见隐形下推语言LICS 2016年。


查看此罗马尼亚语页面承蒙阿佐夫特
斯洛伐克语翻译由创建科学团队
捷克语翻译由Kate Bondareva创作
俄语翻译由创建辅助组件
希腊语翻译承蒙迪米特里斯·加拉塔斯
波兰语翻译Weronika Pawlak著
爱沙尼亚语翻译卡罗琳·洛赫穆斯

维护人拉杰夫·阿鲁尔