Flux:XML的FunctionaL更新(扩展报告)
Flux: FunctionaL Updates for XML (extended report)
摘要:
XML数据库查询语言已经得到了广泛的研究,但XML数据库更新受到的关注相对较少,并对语言设计提出了许多挑战。我们正在开发一种名为Flux的XML更新语言,它代表XML的FunctionaL Updates,它借鉴了函数式程序设计语言的思想。在之前的工作中,我们已经介绍了一个Flux的核心语言,它具有清晰的操作语义和一个基于正则表达式类型的可靠的、可判定的静态类型系统。我们最初的建议有几个限制。首先,它缺乏对递归类型或更新过程的支持。第二,虽然高级源语言可以很容易地被翻译成核心语言,但很难将有意义的类型错误从核心语言传播回源语言。第三,某些更新是格式良好的,但包含路径错误,或“死”的子表达式,这些子表达式永远不会做任何有用的工作。检测路径错误将是有用的,因为它们通常表示错误或优化机会。在本文中,我们将讨论这三个限制。具体来说,我们提出了一个改进的,健全的类型系统,处理递归。我们还形式化了源更新语言,并给出了保留和反映可类型性的核心语言的翻译。我们还为更新开发了路径错误分析(死代码分析的一种形式)。
英文摘要:
XML database query languages have been studied extensively, but XML database updates have received relatively little attention, and pose many challenges to language design. We are developing an XML update language called Flux, which stands for FunctionaL Updates for XML, drawing upon ideas from functional programming languages. In prior work, we have introduced a core language for Flux with a clear operational semantics and a sound, decidable static type system based on regular expression types. Our initial proposal had several limitations. First, it lacked support for recursive types or update procedures. Second, although a high-level source language can easily be translated to the core language, it is difficult to propagate meaningful type errors from the core language back to the source. Third, certain updates are well-formed yet contain path errors, or ``dead'' subexpressions which never do any useful work. It would be useful to detect path errors, since they often represent errors or optimization opportunities. In this paper, we address all three limitations. Specifically, we present an improved, sound type system that handles recursion. We also formalize a source update language and give a translation to the core language that preserves and reflects typability. We also develop a path-error analysis (a form of dead-code analysis) for updates.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。