papers.xml 19.8 KB
Newer Older
1
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
2
<page name="papers" new="">
3

4
<title>Papers and talks</title>
5

6
7
<left>
<p>This page presents Papers and Talks about CDuce.</p>
8
<boxes-toc sections=""/>
9
<p>See also:</p>
10
<local-links href="index,proto,documentation"/>
11
</left>
12
13

<box title="Papers" link="papers">
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

<section title="Thesis">

<ul>
<li>
<paper file="papers/frisch_phd.pdf">
 <title>Théorie, conception et réalisation d'un langage adapté à
 XML</title>
 <author>A. Frisch</author>
 <comment>Ph.D thesis (in French). See <local href="soutenance">this page</local>.
 </comment>
 <abstract>
 <p><b>(English)</b> This thesis describes the theoretical foundations of a type-safe
 and higher-order functional language, adapted to the manipulation of
 XML documents. The first part presents the semantical bases: type
 algebra with recursive types, boolean combination, arrow and product
 constructors; definition of a semantic subtyping relation via a
 set-theoretic notion of model for types; description of the
 functional kernel of the language, in particular its type system and
 its type-driven dynamic semantics. The second part focuses on the
 algorithmical aspects: computing the subtyping relation and compiling
 pattern matching with optimizations. The third part presents the
 CDuce language, built on top of the functional kernel, together
 with some of the original techniques used in its implementation.
 </p>

 <p><b>(French)</b> Cette thèse décrit les fondements théoriques d'un
 langage de programmation fonctionnel d'ordre supérieur, typé, adapté
 à la manipulation de documents XML. La première partie présente les
 bases sémantiques: algèbre de types avec types récursifs,
 combinaisons boolénnes et constructeurs flèche et produit; définition
 d'une relation de sous-typage sémantique en passant par une notion de
 modèle ensembliste des types; présentation du noyau fonctionnel du
 langage, en particulier son système de types et sa sémantique
 dynamique dirigée par les types. La deuxième partie étudie les
 aspects algorithmiques: calcul de la relation de sous-typage et
 compilation optimisée du filtrage par motifs. La troisième partie
 présente le langage CDuce, construit au dessus du noyau fonctionnel,
 ainsi que certaines des techniques originales mises en oeuvre dans
 son implémentation.
 </p>
 </abstract>
</paper>
</li>
</ul>

</section>


63
64
65
<section title="Language Description">
<ul>

66
67
<li>
<paper file="papers/cduce-design.ps.gz">
68
 <title>CDuce: An XML-Centric General-Purpose Language</title>
69
70
71
72
 <author>V. Benzaken</author>
 <author>G. Castagna</author>
 <author>A. Frisch</author>
 <comment>
73
   Proceedings of the <i>ACM International Conference on Functional Programming</i>, 2003.
74
75
 </comment>

76
 <abstract> <p> We present the functional language
77
CDuce, discuss some design issues, and show its adequacy
78
for working with XML documents.  Distinctive features of
79
CDuce are a powerful pattern matching, first class
80
81
functions, overloaded functions, a very rich type system
(arrows, sequences, pairs, records, intersections, unions,
82
differences), precise type inference for patterns and error localization,
83
and a natural interpretation of types as sets of values.  We
84
also outline some important implementation issues; in
85
86
87
88
89
90
91
particular, a dispatch algorithm that demonstrates how
static type information can be used to obtain very efficient
compilation schemas.
 </p> </abstract>
</paper>
</li>

92
<li>
93
<paper old="" file="papers/cduce-wp.ps.gz">
94
95
96
97
98
 <title>CDuce: a white paper</title>
 <author>V. Benzaken</author>
 <author>G. Castagna</author>
 <author>A. Frisch</author>
 <comment>
99
   Workshop
100
101
102
   <i>PLAN-X: Programming Language Technologies for XML</i>
   Pittsburgh PA, Oct. 2002.
 </comment>
103
<abstract><p>
104
Superseded by the previous paper
105
</p>
106
</abstract>
107
108
</paper>
</li>
109
<li>
110
<paper file="ftp://ftp.di.ens.fr/pub/users/castagna/padl05.ps.gz">
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 <title>A Full Pattern-based Paradigm for XML Query Processing</title>
 <author>V. Benzaken</author>
 <author>G. Castagna</author>
 <author>C. Miachon</author>
 <comment>
   Proceedings of the <i>7th International Symposium on
   Practical Aspects of Declarative Languages</i>, LNCS 3350, 2005.
 </comment>
 <abstract> <p> In this article we investigate a novel execution
paradigm---ML-like pattern-matching---for XML query processing and use it to
extend the CDuce language with query capabilities. We show that such a paradigm
is well adapted for a common and frequent set of queries and advocate that it
constitutes a candidate for efficient execution of XML queries far better than
the current XPath-based query mechanisms. We support our claim by comparing
performances of XPath-based queries with pattern based ones, and by comparing
the latter with the two efficiency-best XQuery processor we are aware of.  </p>
</abstract>
</paper>
</li>
130
131
132
</ul>
</section>

133
<section title="Theoretic Foundations">
134
<ul>
135
<li>
136
<paper file="papers/gentle.pdf">
137
138
139
 <title>A Gentle Introduction to Semantic Subtyping</title>
 <author>G. Castagna</author>
 <author>A. Frisch</author>
140
 <comment> Joint PPDP-ICALP '05 Keynote Talk. Proc. of PPDP 2005, ACM Press. </comment>
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155

 <abstract> <p> Subtyping relations are usually defined either syntactically
   by a formal system or semantically by an interpretation of types into an
   untyped denotational model. In this work we show step by step how to
   define a subtyping relation semantically in the presence of functional
   types and dynamic dispatch on types, without the complexity of
   denotational models, and how to derive a complete subtyping algorithm.
   </p> <p> 
   The presentation is voluntarily kept informal and discursive and
   the technical details are reduced to a minimum since we rather insist on
   the motivations, the intuition, and the guidelines to apply the approach,
   the technical details being already published in the paper below.
 </p> </abstract>
</paper>
</li>
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189

<li>
<paper file="papers/lics02.ps.gz">
 <title>Semantic subtyping</title>
 <author>A. Frisch</author>
 <author>G. Castagna</author>
 <author>V. Benzaken</author>
 <comment> In <i>LICS 2002</i>. </comment>

 <abstract> <p> Usually subtyping relations are defined either
 syntactically by a formal system or semantically by an interpretation
 of types in an untyped denotational model. In this work we show how
 to define a subtyping relation semantically, for a language whose
 <i>operational</i> semantics is <i>driven by types</i>; we consider a
 rich type algebra, with product, arrow, recursive, intersection,
 union and complement types. Our approach is to "bootstrap" the
 subtyping relation through a notion of set-theoretic model <i>of the
 type algebra</i>.  </p>

 <p> The advantages of the semantic approach are manifold. Foremost we
 get "for free" many properties (e.g., the transitivity of subtyping)
 that, with axiomatized subtyping, would require tedious and error
 prone proofs. Equally important is that the semantic approach allows
 one to <i>derive</i> complete algorithms for the subtyping relation
 or the propagation of types through patterns.  As the subtyping
 relation has a natural (inasmuch as semantic) interpretation, the
 type system can give informative error messages when static
 type-checking fails. Last but not least the approach has an immediate
 impact in the definition <i>and the implementation</i> of languages
 manipulating XML documents, as this was our original motivation.
 </p> </abstract>
</paper>
</li>

190
191
192
193
194
195
<li>
<paper file="papers/semantic_pi.pdf">
 <title>Semantic subtyping for the pi-calculus</title>
  <author>G. Castagna</author>
 <author>R. De Nicola</author>
 <author>D. Varacca</author>
196
 <comment>  <i>LICS 2005</i>. </comment>
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223

 <abstract> <p>
   Subtyping relations for the pi-calculus are usually  defined in a
syntactic way, by means of  structural rules.  We propose a semantic
characterisation of channel  types and use it to  derive a subtyping
relation.   The  type  system  we consider  includes  read-only  and
write-only channel types, product types, recursive types, as well as
unions, intersections, and negations  of types which are interpreted
as  the  corresponding   set-theoretic  operations.   We  prove  the
decidability  of  the  subtyping  relation,  formally  describe  the
subtyping  algorithm,  and use  the  techniques  developped for  the
decidability of  subtyping to prove  the decidability of  the typing
relation.
</p><p>
In order to fully exploit  the expressiveness of the new type system
(which  subsumes several  existing ones),  we endow  the pi-calculus
with structured channels where communication is subjected to pattern
matching that performs dynamic  typecase.  This paves the way toward
a novel integration of  functional and concurrent features, obtained
by combining  the pi-calculus  with CDuce, a  functional programming
language for XML manipulation that is based on semantic subtyping.
</p>
</abstract>
</paper>
</li>


224
225
226
227
228
229
230
231
<li>
<paper file="papers/itrs02.ps.gz">
 <title>The Relevance of Semantic Subtyping</title>
 <author>M. Dezani-Ciancaglini</author>
 <author>A. Frisch</author>
 <author>E. Giovannetti</author>
 <author>Y. Motohama</author>
 <comment>
232
   In <i>Intersection Types and Related Systems</i> Electronic Notes in Theoretical Computer Science 70 No.1 (2002).
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
 </comment>
 
 <abstract> <p> We compare Meyer and Routley's minimal relevant logic
 B+ with the recent semantics-based approach to subtyping introduced
 by Frisch, Castagna and Benzaken in the definition of a type system
 with intersection and union.  We show that - for the functional core
 of the system - such notion of subtyping, which is defined in purely
 set-theoretical terms, coincides with the relevant entailment of the
 logic B+.  </p> </abstract>
</paper>
</li>

<li>
<paper file="papers/dea.ps.gz">
 <title>Types récursifs, combinaisons booléennes et fonctions
surchargées: application au typage de XML</title>
 <author>A. Frisch</author>
 <comment>In french. Mémoire du DEA « Programmation: Sémantique,
  Preuves et Langages » (Paris VII) </comment>
 
 <abstract> <p> Nous étudions un lambda-calcul typé avec une opération
 de filtrage qui permet d'exprimer des fonctions
 surchargées. L'algèbre de types a des types de base, les types
 produit et flèche, les types récursifs, les combinaisons booléennes
 finies arbitraires.  Nous considérons une notion de sous-typage
 sémantique, issue de l'interprétation des types comme ensembles de
 valeurs du langage.  </p>

 <p> Les caractéristiques présentes dans le calcul et l'algèbre de
 types sont motivées par l'utilisation du calcul comme un noyau pour
 un langage adapté à la manipulation de documents XML.  </p>

 <p> Nous utilisons une approche sémantique pour étudier l'algèbre de
 types, tout en conservant une preuve syntaxique de préservation du
 typage par réduction. </p> </abstract>
</paper>
</li>
</ul>
</section>

273
274
275
276
<section title="Implementation algorithms">

<ul>
<li>
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<paper file="http://www.cduce.org/papers/tcs04.pdf">
 <title>Regular tree language recognition with static information</title>
 <author>A. Frisch</author>
 <comment> In <i>TCS 2004</i> (Toulouse).</comment>

 <abstract><p>
This paper presents our compilation strategy to produce
efficient code for pattern matching in the CDuce compiler, taking into
account static information provided by the type system.  
 </p>
 </abstract>
</paper>
</li>
</ul>

<ul>
<li>
<paper file="http://www.cduce.org/papers/icalp04.pdf">
 <title>Greedy regular expression matching</title>
 <author>A. Frisch</author>
 <author>L. Cardelli</author>
 <comment> In <i>ICALP 2004</i> (Turku). </comment>

 <abstract><p>This paper studies the problem of matching sequences against regular
expressions in order to produce structured values.
 </p></abstract>
</paper>
</li>
</ul>

<ul>
<li>
<paper old="" file="papers/reg.pdf">
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
 <title>Regular tree language recognition with static information</title>
 <author>A. Frisch</author>
 <comment> In <i>PLAN-X 2004</i>. </comment>

 <abstract><p>
  This paper presents our compilation strategy to produce
efficient code for pattern matching in the CDuce compiler, taking into
account static information provided by the type system.  Indeed, this
information allows in many cases to compute the result (that is, to
decide which branch to consider) by looking only at a small fragment
of the tree.  Formally, we introduce a new kind of deterministic tree
automata that can efficiently recognize regular tree languages with
static information about the trees and we propose a compilation
algorithm to produce these automata.
 </p>
 </abstract>
</paper>
</li>
</ul>

<ul>
<li>
332
<paper old="" file="papers/greedy.pdf">
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
 <title>Greedy regular expression matching</title>
 <author>A. Frisch</author>
 <author>L. Cardelli</author>
 <comment> In <i>PLAN-X 2004</i>. </comment>

 <abstract><p>This paper studies the problem of matching sequences against regular
expressions in order to produce structured values.  More specifically,
we formalize in an abstract way a greedy disambiguation policy and
propose efficient matching algorithms.  We also formalize and address 
a folklore problem of non-termination in naive 
implementations of the greedy semantics.</p>

<p>
Regular expression types and patterns have been introduced in the
setting of XML-oriented functional languages.  Traditionnaly, all the XML
values and sequences share a common uniform runtime representation.
Our work suggests an alternative implementation technique, where
regular expression types define not only a set of abstract
flat sequences, but also a custom structured representation
for such values. This paves the way to a variety of language designs
and implementations to integrate XML structural types 
in existing languages (class-based OO languages, imperative features,
constrained runtime environment, ..).
 </p></abstract>
</paper>
</li>
</ul>

</section>

363
364
365
366
367
368
369
<section title="Security">

<ul>
<li>
<paper file="papers/sec.ps.gz">
 <title>Security analysis for XML transformations</title>
 <author>V. Benzaken</author>
370
 <author>M. Burelle</author>
371
 <author>G. Castagna</author>
372
 <comment> In <i>Asian '03</i>, LNCS, 2003.</comment>
373
374
375
376
377
378
379
380
381
382
383
384
385
386

 <abstract> <p> In this article we give a formal definition of
 information flows in the context of XML transformations and, more
 generally, in the presence of type dependent computations. We
 formalize a sound technique to detect XML document transformations
 that may leak private or confidential information. By defining
 security annotations and by relating various kind of analyses to
 different query scenarios, we also establish a general framework for
 checking middleware-located information flows.  </p> </abstract>
</paper>
</li>
</ul>
</section>

387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
<section title="Extensions">

<ul>
<li>
<paper file="papers/polyx.ps.gz">
 <title>Parametric polymorphism for XML</title>
 <author>H. Hosoya</author>
 <author>A. Frisch</author>
 <author>G. Castagna</author>
 <comment>In The <i>32nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages</i>, 2005.
</comment>
<abstract> <p> Although several type systems have been investigated
for XML, parametric polymorphism is rarely treated. This
well-established typing discipline can also be useful in XML
processing in particular for programs involving "parametric schemas,"
i.e., schemas parameterized over other schemas (e.g., SOAP). The
difficulty in treating polymorphism for XML lies in how to extend the
"semantic" approach used in the mainstream (monomorphic) XML type
systems. A naive extension would be "semantic" quantification over all
substitutions for type variables. However, this approach reduces to an
NEXPTIME-complete problem for which no practical algorithm is known,
and, moreover, the type system obtained in this way is characterized
by a hardly useful expressiveness. In this paper, we propose a
lighter-weight way of extending the semantic approach, where we
interpret type variables as markings in data values for indicating the
parameterized subparts. As a result, we can construct a sensible
polymorphic type system both with a semantic flavor and a set of
practical algorithms needed for typechecking. Most of these algorithms
can be obtained by local modifications to existing ones for a
monomorphic system.</p> </abstract>
</paper>


</li> </ul>

</section>

424
425
426
427
428
429
</box>


<box title="Slides" link="slides">
<ul>

430
431
432
433
434
435
436
437
438
<li>
<slides file="slides/frisch_phd_slides.pdf">
  <title>Théorie, conception et réalisation d'un langage adapté à
  XML</title>
  <author>A. Frisch</author>
  <comment>Slides of the PhD defense (Dec. 2004). In French.</comment>
</slides>
</li>  

439
440
441
442
443
444
445
446
447
<li>
<slides file="slides/talk_irit.pdf">
  <title>CDuce: un langage fonctionnel pour manipuler des documents XML</title>
  <author>A. Frisch</author>
  <comment>Slides of the presentation given at the IRIT Seminar
  (Dec. 2004). In French.</comment>
</slides>
</li>  

448
449
450
451
452
453
454
455
456
<li>
<slides file="slides/talk_gt_cristal.pdf">
  <title>CDuce: un aperçu</title>
  <author>A. Frisch</author>
  <comment>Slides of the presentation given at the Cristal working
  group (Oct. 2004). In French.</comment>
</slides>
</li>  

457
<li>
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
<slides file="slides/cduce_psd.pdf">
  <title>CDuce</title>
  <author>A. Frisch</author>
  <author>G. Castagna</author>
  <author>V. Benzaken</author>  
  <comment>Slides of the presentation given at the second PSD
  Workshop (Feb. 2004)</comment>
</slides>
</li>  

<li>
<slides file="slides/ocamlcduce_psd.pdf">
  <title>Interfacing CDuce and OCaml</title>
  <author>G. Castagna</author>
  <author>J. Demouth</author>
  <author>A. Frisch</author>
  <comment>Slides of the presentation given at the second PSD
  Workshop (Feb. 2004)</comment>
</slides>
</li>  

<li>
480
481
482
483
484
485
486
487
488
<slides file="slides/icfp03.pdf">
  <title>CDuce</title>
  <author>A. Frisch</author>
  <author>G. Castagna</author>
  <author>V. Benzaken</author>  
  <comment>Slides of the presentation given at ICFP03 (Aug. 2003)</comment>
</slides>
</li>  

489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
<li>
<slides file="slides/lri02.pdf">
  <title>Semantic Subtyping</title>
  <author>A. Frisch</author>
  <author>G. Castagna</author>
  <author>V. Benzaken</author>
  <comment>Slides of a presentation given at LRI Database Group (2002-12)</comment>
</slides>
</li>

<li>
<slides file="slides/planx2002.pdf.gz">
 <title>CDuce: a white paper</title>
 <author>V. Benzaken</author>
 <author>G. Castagna</author>
 <author>A. Frisch</author>
 <comment>Slides of the presentation given at the PLANX 2002 Workshop
   in Pittsburgh  (2002-09)</comment>
</slides>
</li>

<li>
<slides 
512
 file="ftp://ftp.di.ens.fr/pub/users/castagna/SLIDES/cduce-wp-slides.pdf.gz">
513
514
515
516
517
518
519
520
521
522
 <title>CDuce: a white paper</title>
 <author>V. Benzaken</author>
 <author>G. Castagna</author>
 <author>A. Frisch</author>
 <comment>Slides of the presentation given at MyThS meeting in
   Bertinoro  (2002-12) </comment>
</slides>
</li>

<li>
523
<slides file="ftp://ftp.di.ens.fr/pub/users/castagna/SLIDES/cduce-sec.ps.gz">
524
525
526
527
528
529
530
531
532
 <title>CDuce: document security</title>
 <author>V. Benzaken</author>
 <author>M. Burelle</author>
 <author>G. Castagna</author>
 <comment>Slides of the presentation given at FOSAD school (september
2002)  </comment>
</slides>
</li>

533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
<li>
<slides file="slides/talk_compil_planx2004.pdf">
 <title>Regular tree language recognition with static information</title>
 <author>A. Frisch</author>
 <comment>Slides of the presentation given at the PLANX 2004 Workshop
   in Venice  (2004-01-13)</comment>
</slides>
</li>

<li>
<slides file="slides/talk_greedy_planx2004.pdf">
 <title>Greedy regular expression matching</title>
 <author>A. Frisch</author>
 <author>L. Cardelli</author>
 <comment>Slides of the presentation given at the PLANX 2004 Workshop
   in Venice  (2004-01-13)</comment>
</slides>
</li>

552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
<li>
<slides file="http://www.cduce.org/slides/ecoop2004_oo_xml.pdf">
  <title>OOP and XML</title>
  <author>A. Frisch</author>
  <comment>Slides of my presentation for the ECOOP 2004 discussion
panel on OOP and XML</comment>
</slides>
</li>

<li>
<slides file="slides/talk_icalp2004.pdf">
 <title>Greedy regular expression matching</title>
 <author>A. Frisch</author>
 <author>L. Cardelli</author>
 <comment>Slides of the presentation given at the ICALP 2004 conference
   in Turku  (2004-07-15)</comment>
</slides>
</li>

571
</ul>
572
573


574
575
576
</box>

</page>