嵌套的单词
又称可视下推语言
什么是嵌套单词?
嵌套单词是用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的其他决策问题
- 看得见的下推游戏;Loding、Madhusudan和Serre;FSTTCS 2004。
- 可视下推自动机:从语言等价到模拟和互模拟;斯尔巴;CSL 2006。
- 可视下推语言的正则性问题;Barany、Loding和Serre;STACS 2006。
- 关于可视下推语言的隶属度问题;拉托雷,那不勒斯,和父母;ATVA 2006。
- 符号可视下推自动机;德安东尼和阿鲁尔;CAV 2014。
同余与最小化
- 明显下推语言的一致性;阿鲁尔、库马尔、马都苏丹和维斯瓦纳坦;ICALP 2005年。
- 布尔程序的最小化、学习和一致性测试;库马尔、马都苏丹和维斯瓦纳坦;CONCUR 2006年。
- 最小化可视下推自动机的变体;Chervet和Walukiewicz;MFCS 2007。
- 利用部分Max-SAT最小化可视下推自动机;海兹曼、席林和蒂施纳;2017年墨西哥玉米饼。
- 可视下推自动机的最小化是NP完全的;高文、马斯乔尔和拉斯金;LMCS 2020。
时间和定点逻辑;表达能力
- 嵌套调用和返回的时态逻辑;阿鲁尔、埃特萨米和马都苏丹;TACAS 2004年。
- 嵌套词的常规语言:定点、自动机、,和同步;阿里纳斯、巴赛罗和利布金;ICALP 2007年。
- 嵌套单词的一阶和时序逻辑,阿鲁尔、阿里纳斯、巴赛罗、埃特萨米、伊梅尔曼和利布金;LICS 2007。
- 可视下推语言的交替自动机和时间不动点演算;博泽利;CONCUR 2007年。
- 可视下推语言的语法表示;Baran和Barringer;WoLLIC 2007年。
- 嵌套词的加权逻辑与代数形式幂级数;马蒂森;ICALP 2008。
- 直观的理性表达;博泽利和桑切斯;FSTTCS 2012。
- 可视线性时序逻辑;博泽利和桑切斯;2014年国际JCAR。
程序分析规范
- 基于VPA的方面:更好地支持基于协议的AOP;Nguyen和Sudholt;SEFM 2006。
- 用嵌套单词监视器检测C程序;乔杜里和阿鲁尔;SPIN 2007。
- 安全属性的综合监视器——这一次有调用和返回;Rosu、Chen和Ball;RV 2008。
- 过程程序的时间推理;阿鲁尔和乔杜里;VMCAI 2010。
- 嵌套插值;海兹曼、霍尼克和波德尔斯基;POPL 2010。
- 检查生产者和消费者的兼容性;Drscoll、Burton和众议员;2011年FSE。
- 通过可视下推安全游戏实现安全编程;哈里斯、杰哈和众议员;CAV 2012。
XML处理和树自动机
- XML流处理的可视下推表达式效果;投掷者;2005年X月计划。
- 流式XML的可视下推语言;库马尔、马都苏丹和维斯瓦纳坦;WWW 2007。
- 文字与树木的结合;阿鲁尔;PODS 2007。
- 重写用于XML数据集成的可视下推语言;托莫和文卡特什;2008年CIKM。
- 流树自动机;高文、尼伦和罗斯;信息处理信件2009。
- 确定性嵌套词自动机的最早查询应答;高文、尼伦和蒂森;FCT 2009。
- 嵌套词的查询自动机;Madhusudan和Viswanathan;MFCS 2009。
- 从正则表达式到嵌套单词:统一语言和关系序列和XML序列的查询执行;莫扎法里、曾、扎尼奥罗;2010年VLDB。
- 基于XML流的高性能复杂事件处理;莫扎法里、曾、扎尼奥罗;2012年SIGMOD。
- 前向XPath的流式片段;高文和尼伦;CIAA 2012。
- XML流的早期XPath节点选择;德巴比厄、高文、尼伦、塞巴斯蒂安和泽高伊;2012
传感器
- 用于流XML近似验证的可视下推传感器;托莫、文卡提什和叶;FoIKS 2008。
- 可视下压传感器;Raskin和Servais;ICALP 2008。
- 决定论嵌套词对词转换器的等效性;斯塔奥韦、劳伦斯、莱梅、尼伦;FCT 2009。
- 可视下压传感器的特性;E.Filiot、J.-F.Raskin、P.-A.Reynier、F.Servais和J.-M.Talbot;MFCS 2010。
- XEvolve:一个XML模式演化框架;F.Picalausa、F.Servais和E.Zimányi;SACSVT 2011。
- 嵌套词转导的可流性;E.Filiot、O.Gauwin、P.-A.Reynier、F.Servais。2011年FSTTCS。
- 流树传感器;R.Alur和L.D'Antoni;ICALP 2012。
- 带有Look-Ahead的可视下压传感器。E.Filiot和F.Servais。SOFSEM 2012。
嵌套的树
- 局部和全局程序流的不动点演算;阿鲁尔、乔杜里和马都苏丹;2006年6月。
- 嵌套树的语言;阿鲁尔、乔杜里和马都苏丹;CAV 2006。
- 可视下推语言和术语重写;查宾与雷蒂;FroCos 2007年。
- 具有记忆和约束的可视树自动机;科蒙·隆德、杰克·马尔、佩林;2008年计算机科学中的逻辑方法。
具有多个嵌套的单词
- 关于嵌套词的一点注记;布拉斯和古雷维奇;微软研究TR;2006
- 一类健壮的上下文敏感语言;拉托雷、马都苏丹和帕拉托;LICS 2007。
- 2-可视下推自动机;胡萝卜、穆拉诺和佩隆;DLT 2007。
- 并发递归程序的可实现性;Bollig、Grindei和Habermehl;FoSSaCS 2009年。
使用调用/返回可见性的新结果
- 带迭代的三阶理想化算法是可判定的;穆拉夫斯基和瓦卢基维茨;FoSSaCS 2005。
- 下推自动机的同步;盲肠;DLT 2006。
- 递归程序的命题动态逻辑;爱情与Serre;FoSSaCS 2006。
- 高度确定的下推自动机;诺沃特卡和斯尔巴;MFCS 2007。
- 双指数时间的无穷自动机特征;拉托雷、马都苏丹和帕拉托;CSL 2008。
一个具有挑战性的开放问题(现已解决!)
考虑以下决策问题:给定嵌套单词的两种正则语言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著
爱沙尼亚语翻译卡罗琳·洛赫穆斯
维护人拉杰夫·阿鲁尔