On the tree-transformation power of XSLT
Wim Janssen, Alexandr Korlyukov, Jan Van den Bussche

TL;DR
This paper analyzes the computational power of XSLT, showing that version 2.0's new features make it a complete tree-transformation language, unlike version 1.0.
Contribution
It formally characterizes the computational capabilities of XSLT versions 1.0 and 2.0, demonstrating the impact of new features on expressiveness.
Findings
XSLT 1.0 is not computationally complete, with transformations executable in exponential time.
XSLT 2.0's nodesets over temporary trees enable computational completeness.
A formal operational semantics and confluence are established for XSLT programs.
Abstract
XSLT is a standard rule-based programming language for expressing transformations of XML data. The language is currently in transition from version 1.0 to 2.0. In order to understand the computational consequences of this transition, we restrict XSLT to its pure tree-transformation capabilities. Under this focus, we observe that XSLT~1.0 was not yet a computationally complete tree-transformation language: every 1.0 program can be implemented in exponential time. A crucial new feature of version~2.0, however, which allows nodesets over temporary trees, yields completeness. We provide a formal operational semantics for XSLT programs, and establish confluence for this semantics.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
