.
authorKim Nguyễn <kn@lri.fr>
Mon, 13 Apr 2015 23:07:46 +0000 (01:07 +0200)
committerKim Nguyễn <kn@lri.fr>
Mon, 13 Apr 2015 23:07:46 +0000 (01:07 +0200)
pres-esop15/01.xhtml

index 6a41862..6d2dee3 100644 (file)
@@ -571,18 +571,6 @@ which is not a type.</p>
   <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>&amp;</tt> t | _ )<sub>&ztop;</sub>                                (Init(ẋ) = [], Op(ẋ) = <tt>snoc</tt>)
@@ -641,6 +629,19 @@ which is not a type.</p>
 </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%">
@@ -662,7 +663,7 @@ which is not a type.</p>
 
                                <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>
 
 
 
@@ -681,8 +682,7 @@ which is not a type.</p>
 <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>