<li>Provided the operators are sound, the whole language remains <u>type-safe</u></li>
</ul>
</div>
-<div class="sws-slide">
- <h1>From zippers to XPath</h1>
- <p>We use <u>regular expressions</u> over basic &left;/&right; zippers to encode XPath</p>
-<code style="width:50%;float:left;"> <![CDATA[<a>[ <b>[
- <c>[]
- <d>[]
- <e>[ <f> [] ]
- ]
- ]]]>
-</code><img style="width:17.5%;" src="ex_ntree.svg" alt="ex_ntree" /><br/>
-<p class="sws-pause"><img style="margin-top:-1em;margin-left:5%;width:85%;" src="rb_tree.svg" alt="rb_tree"/></p>
-</div>
<div class="sws-slide">
<h1>Downward XPath axes</h1>
<pre style="background:white"> <tt>self ::</tt> t ≡ (ẋ <tt>&</tt> t | _ )<sub>&ztop;</sub> (Init(ẋ) = [], Op(ẋ) = <tt>snoc</tt>)
</script>
-->
</div>
+<div class="sws-slide">
+ <h1>Binary-tree encoding</h1>
+ <p>We use <u>regular expressions</u> over basic &left;/&right; zippers to encode upward XPath</p>
+<code style="width:50%;float:left;"> <![CDATA[<a>[ <b>[
+ <c>[]
+ <d>[]
+ <e>[ <f> [] ]
+ ]
+ ]]]>
+</code><img style="width:17.5%;" src="ex_ntree.svg" alt="ex_ntree" /><br/>
+<p class="sws-pause"><img style="margin-top:-1em;margin-left:5%;width:85%;" src="rb_tree.svg" alt="rb_tree"/></p>
+</div>
+
<div class="sws-slide">
<h1>Upward XPath axes</h1>
<div style="position:absolute; width:80%; left:10%;top:15%">
<span class="sws-onframe-1" style="font-size:110%;color:#1fb01b;">⬆</span> <span class="sws-onframe-2" style="font-size:110%;color:#1fb01b;">⬆</span> <span class="sws-onframe-3" style="font-size:110%;color:#1fb01b;">⬆</span> <span class="sws-onframe-4" style="font-size:110%;color:#1fb01b;">⬆</span>
- <span style="color:#1fb01b;border-color:#1fb01b;border-top-style:dashed;border-top-width:3pt;position:relative;top:0.5em;"> parent </span>
+ <span class="sws-onframe-5" style="color:#1fb01b;border-color:#1fb01b;border-top-style:dashed;border-top-width:3pt;position:relative;top:0.5em;"> parent </span>
<ul>
<li>Adding path expressions to a functional language such as &cduce; is possible </li>
<li>Semantic subtyping and regular expression types play nicely with zippers</li>
- <li>In terms of language design, exposing directly zippers patterns to the programmer is a big no-no</li>
- <li>Can also be applied to XSLT</li>
+ <li>In terms of language design, exposing directly zippers to the programmer (still need work at the syntax level)</li>
<li>Implementation on-going (including a &cduce; to javascript backend)</li>
<li>Extend the approach to Json (google ``path language for json''), i.e. generalise from products to extensible records</li>
</ul>