Type-Checking for Pattern-Based Tree Transformations
Organizations: CNRS IRL ReLaX, India
Abstract
We introduce and study pattern-based tree transformations. As an illustrating example, consider a source pattern and a target pattern as a pair. This source pattern matches any expression of the form (by substituting with , with , and with ) and the pair transforms it into the expression as dictated by the target pattern. Note that in this example, the set of expressions that match the source pattern is not a regular tree language. We propose a model of tree transformations given by a finite representation of a (possibly infinite) set of such (source pattern, target pattern) pairs. The expressive power of this model comes at the cost of undecidability of checking equivalence. Nevertheless, we show that the type-checking problem is decidable for our model of pattern-based tree transformations. The type-checking problem asks whether applying a given transformation to trees having a given regular property (type) preserves the property. Our decision procedure is by a reduction to the emptiness problem of alternating tree automata.
Figures & tables
| Source code |
|---|
| int[] A = new int[m]; |
| for(int i=0;i<A.length;i++) { |
| A[i] = getInputFromUser(); |
| } |
| for(int j=0;j<A.length;j++) { |
| int minIndex = j; |