Affiliation:
1. University of Edinburgh, Edinburgh, United Kingdom
Abstract
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 wellformed 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Synthesizing quotient lenses;Proceedings of the ACM on Programming Languages;2018-07-30
2. A Semantic Basis for Proof Queries and Transformations;Logic for Programming, Artificial Intelligence, and Reasoning;2013
3. Computational Materials Design;Journal of Phase Equilibria and Diffusion;2009-08-05