Commit 35bdd0e7 authored by Pietro Abate's avatar Pietro Abate

[r2006-12-19 17:58:46 by afrisch] Empty log message

Original author: afrisch
Date: 2006-12-19 17:59:16+00:00
parent 0f4e0757
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page name="appli">
<title>Applications using CDuce</title>
<title>Applications</title>
<left>
<local-links href="index,documentation"/>
......
body {
background: #BBDDFF;
color: #000000;
margin: 1ex 0 1ex 0;
padding: 0;
.smallbox {
font-size: 11px;
font-family: arial,sans-serif;
border: solid 2px black;
background: #ffffff;
}
a:link:hover, a:visited:hover {
text-decoration: none;
background: #FFFFD0;
color: #FF0000;
}
a.old {
text-decoration: line-through;
.box {
border: solid 2px black;
background: #ffffff;
}
h1 {
color: #aa0000;
text-align: center;
margin: 0ex 0em 0ex 0em;
padding: 0ex;
font: bold 200% helvetica;
}
h2 {
background: #FFF0F0;
color: #0000FF;
padding: 0.5ex 0 0.5ex 1em;
margin: 0 0 0 0;
font: bold 102% helvetica;
}
h3 {
padding: 0 0 0 2em;
margin: 0 0 0 0;
font: bold 60% sans-serif;
}
h4 {
font: bold 100% helvetica;
color: #008000;
padding: 0 0 0 1em;
margin: 1em 0 0 0;
}
p {
text-align: justify;
margin: 1ex 1em 0 1em;
}
pre {
margin: 1ex 1em 0 1em;
}
var.highlight {
a:link:hover, a:visited:hover {
text-decoration: none;
background: #FFFFFF;
color: #FF0000;
}
img.icon {
border: 0;
}
div.note {
font: bold helvetica;
margin: 3ex 3em 3ex 3em;
padding: 1ex 1em 1ex 1em;
background: #EFFFFF;
}
a.old, a.old:hover, a.old:visited:hover { text-decoration: line-through; }
p { text-align: justify; margin: 1ex 1em 0 1em; }
pre { margin: 1ex 1em 0 1em; }
strong.ocaml{ color: #333b8e; }
strong.highlight { color: #FF0000; }
img.icon { border: 0; }
div.code { background: #E0E0E0; margin: 0.5ex 0.5em 0 0.5em; padding: 0.2ex; }
div.xmlcode { background:#ebefa2; margin: 0.5ex 0.5em 0 0.5em; padding: 0.2ex;}
div.abstract {
font: bold 80% helvetica;
margin: 1ex 1em 1ex 1em;
padding: 1ex 1em 1ex 1em;
background: #F0F0F0;
......@@ -70,7 +32,6 @@ div.abstract {
div.note {
text-align: justify;
font: bold helvetica;
margin: 1ex 3em 1ex 3em;
padding: 1ex 1em 1ex 1em;
background: #D0E2D2;
......@@ -78,74 +39,9 @@ div.note {
div.session
{
font: bold 80% helvetica;
margin: 1ex 1em 1ex 1em;
padding: 1ex 1em 1ex 1em;
border: solid .5px grey;
}
div.abstract p {
font: 100% sans-serif;
}
#Sidelog {
position: absolute;
top: 10px;
left: 10px;
width: 190px;
background-color: #ffcd72;
border: 1px dashed black;
padding: 5px 5px 0px 5px;
font-size:11px;
font-family: arial, helvetica, sans-serif;
color: black;
}
#Content {
margin:10px 1em 10px 225px;
padding:10px 20px 10px 20px;
color:black;
background-color:#fccead;
border:1px solid black;
}
div.box {
background: #FFFFFF;
border: solid 2px #000000;
margin: 2ex 1em 2ex 1em;
padding: 0ex 0ex 0.5em 0ex;
}
div.code {
background: #E0E0E0;
margin: 0.5ex 0.5em 0 0.5em;
padding: 0.2ex;
}
div.xmlcode {
background: #ebefa2;
margin: 0.5ex 0.5em 0 0.5em;
padding: 0.2ex;
}
div.title {
background: #FFFFFF;
border: solid 2px #000000;
margin:10px 1em 10px 225px;
padding: 0ex 0ex 0ex 0ex;
}
div.meta {
background: #E0E0E0;
margin: 4ex 0.5em 0 0.5em;
border: solid 1px #B0B0B0;
padding: 0.5ex;
font-size: 80%;
font-family: sans-serif;
}
@media screen {
body {
background: #fcb333;
}
border: solid .5px gray;
}
div.abstract p { font-family: sans-serif; font-size:12px; }
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page name="team">
<page name="contacts">
<title>The CDuce team</title>
<title>Contacts</title>
<include file="img.xml"/>
<left>
<boxes-toc/>
<p>See also:</p>
<local-links href="index,img,sitemap"/>
</left>
<box title="Mailing lists" link="mailing">
<box title="CDuce @ Cristal (INRIA Rocquencourt)" link="inria">
<ul>
<li><code>users@cduce.org</code>: the main mailing list for CDuce
users.
<a href="http://sympa.cduce.org/wws/arc/users">Archives</a>.
<a href="http://sympa.cduce.org/wws/subrequest/users">Join</a>.
<br/>You can post to this list if you join it.
</li>
<li><code>ocamlduce@cduce.org</code>: discussion and announces about
<local href="ocaml">OCamlDuce</local>.
<a href="http://sympa.cduce.org/wws/arc/ocamlduce">Archives</a>.
<a href="http://sympa.cduce.org/wws/subrequest/ocamlduce">Join</a>.
<br/>You can post to this list if you join it.
</li>
<!--<li><code>announce@cduce.org</code>: announcements about
CDuce (very low traffic).
<a href="http://sympa.cduce.org/wws/arc/announce">Archives</a>.
<a href="http://sympa.cduce.org/wws/subrequest/announce">Join</a>.
<br/>You cannot post to this list.
</li>-->
<li><code>devel@cduce.org</code>: all the developers of CDuce.
<a href="http://sympa.cduce.org/wws/arc/devel">Archives</a>.
<br/>You cannot join this list, but you can post to it.
</li>
<!--<li><code>staff@cduce.org</code>: all the managers of the CDuce
project.
<br/>Closed. For internal discussion only.
</li>-->
</ul>
</box>
<box title="The CDuce team" link="team">
<p>
Do you want to see <local href="img">what we look like</local> ?
</p>
<section title="CDuce @ Gallium (INRIA Rocquencourt)">
<p>
Research group: <a href="http://cristal.inria.fr">Cristal project</a>.
......@@ -23,9 +57,9 @@ Research group: <a href="http://cristal.inria.fr">Cristal project</a>.
</li>
</ul>
</box>
</section>
<box title="CDuce @ ENS (Paris)" link="ens">
<section title="CDuce @ ENS (Paris)">
<p>
Research group: <a
......@@ -45,9 +79,9 @@ href="http://www.di.ens.fr/~castagna/EQUIPE/">Language group</a>.
</ul>
</box>
</section>
<box title="CDuce @ LRI (Orsay)" link="lri">
<section title="CDuce @ LRI (Orsay)">
<p>
Research group: <a
......@@ -76,13 +110,13 @@ href="http://www.lri.fr/bd/introduction.en.shtml">Database group</a>.
</li>
<li>
<a href="http://www.lri.fr/~miachon/">
Cdric Miachon</a> (Ph.D. student): <i>query langage for CDuce</i>.
Cdric Miachon</a> (former Ph.D. student): <i>query langage for CDuce</i>.
</li>
</ul>
</box>
</section>
<box title="Former interns and students" link="former">
<section title="Former interns and students">
<ul>
<li>
<a href="http://www.cduce.org">
......@@ -105,10 +139,9 @@ href="http://www.lri.fr/bd/introduction.en.shtml">Database group</a>.
</a> (former intern): <i>interface with OCaml</i>.
</li>
</ul>
</box>
<box title="Other contacts" link="contacts">
</section>
<section title="Other contacts">
<ul>
<li>
......@@ -119,12 +152,8 @@ href="http://www.lri.fr/bd/introduction.en.shtml">Database group</a>.
</li>
</ul>
</box>
</section>
<box title="Pictures" link="pic">
<p>
Do you want to see <local href="img">what we look like</local> ?
</p>
</box>
</page>
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page name="contrib">
<title>External contributions</title>
<title>Contributions</title>
<box>
......
......@@ -32,7 +32,7 @@ browser (with Javascript enabled).
<li>Compilation of pattern matching (PLANX 2004, TCS 2004).</li>
<li>Query language (PADL 2005).</li>
</ul>
(See: <local href="team">the CDuce team</local>.)
(See: <local href="contacts">the CDuce team</local>.)
</section>
<section title="Distribution">
......
<page name="design_features">
<title>Design and features</title>
<box title="Design and features" link="design">
<p> Our point of view and our guideline for the design of CDuce is
that a programming language for XML should take XML types (
DTD, XML Schema, Relax-NG, ...) seriously into account.
The benefits are the following:</p>
<ul>
<li> <b>static verifications</b>
(e.g.: ensure that a transformation produces a valid document
<footnote>
Valid with respect to validity constraints
that can be expressed by the type system (thus typically excluding
constraints like <a
href="http://www.w3.org/TR/REC-xml#sec-attribute-types">ID</a> and
<a href="http://www.w3.org/TR/REC-xml#sec-attribute-types">IDREF</a>).
</footnote>);</li>
<li> in particular, we aim at <b>smooth and safe</b> compositions
of XML transformations, and incremental programming;</li>
<li> static <b>optimizations</b> and <b>efficient execution model</b>
(knowing the type of a document is crucial to extract information
efficiently).</li>
</ul>
<p>
Some features particular to CDuce:
</p>
<ul>
<li> XML objects can be manipulated as first-class citizen values:
elements, sequences, tags, characters and strings, attribute
sets; sequences of XML elements can be specified by
<b>regular expressions</b>, which also apply to
characters strings; </li>
<li> functions themselves are <b>first-class</b> values, they
can be manipulated, stored in data structure, returned by
a function,...</li>
<li> a powerful <b>pattern matching</b> operation can perform
complex extractions from sequences of XML elements; </li>
<li> a rich <b>type algebra</b>, with recursive types and arbitrary
boolean combinations (union, intersection, complement) allows
precise definitions of data structures and XML types;
<b>general purpose types</b> and types constructors are taken seriously
(products, extensible records, arbitrary precision integers with interval
constraints, Unicode characters);</li>
<li> <b>polymorphism</b> through a natural notion of <b>subtyping</b>,
and <b>overloaded functions</b> with dynamic dispatch; </li>
<li> an highly-effective <b>type-driven compilation schema</b>. </li>
</ul>
<p>CDuce is fast, functional,
type-safe, and <b>conforms to basic standards</b>: <a href="http://www.unicode.org">Unicode</a>, <a href="http://www.w3.org/XML/">XML</a>, <a href="http://www.w3.org/TR/REC-xml#dt-doctype">DTD</a>,
<a href="http://www.w3.org/TR/REC-xml-names/">Namespaces</a> are fully
supported, <a href="http://www.w3.org/TR/xmlschema-1/">XML Schema</a>
is partially <local href="manual_schema">supported</local>.
</p>
<p>
<local href="bench">Preliminary benchmarks</local> suggest that despite the
overhead for static type verification, a CDuce
program can run faster (30% to 60%) than an equivalent XSLT
style-sheet (we performed benchmarks with
the xsltproc tools from the Gnome libxslt library).
</p>
<p>
The name CDuce was coined by <a
href="http://www.di.ens.fr/~zappa">Francesco Zappa Nardelli</a>.
</p>
<footnotes/>
</box>
<!--
<box title="Research directions" link="research">
<p>Our plans concerning the design of the core language
include:</p>
<ul>
<li>interface with other languages and type systems
<footnote>
An <local href="manual_interfacewithocaml">
interface between CDuce and OCaml
</local> is currently being
implemented.
</footnote>
;
</li>
<li>efficient evaluation strategies, high-level optimizations;</li>
<li>a module system to support incremental programming;</li>
<li>parametric polymorphism;</li>
<li>XML-friendly primitives, to mimic XSLT transformations.</li>
</ul>
<p>
Apart from the core language design and implementation,
our research projects include:
</p>
<ul>
<li> integration of a <b>query sub-language</b> into CDuce, using
types as a primary optimization strategy for request evaluation;</li>
<li> study of <b>security</b> (confidentiality, ...) properties in the
setting of XML transformations.</li>
</ul>
<p>
We wrote several <local href="papers">technical papers</local> about
the language design and its theoretical foundations.
</p>
<footnotes/>
</box>
-->
<box title="XDuce and CDuce" link="xduce">
<p>
The starting point of our work on CDuce was the
<a href="http://xduce.sourceforge.net/">XDuce</a> language developed
at the UPenn DB group. Many of CDuce features originate from XDuce.
Some of our achievements:
</p>
<ul>
<li>integration of first-class and overloaded functions, arbitrary boolean
connectives, and extensible (or not) records, to the semantic
definition of subtyping;</li>
<li>a subtyping algorithm without backtracking;</li>
<li>extending pattern matching to capture non consecutive
subsequences; removing tail condition for exact matching
(they arrived independently to another solution);</li>
<li>efficient evaluation model that takes profit of static type information;</li>
</ul>
<p>
Of course, the work on XDuce continued during our, and they
developed nice ideas: mixed attribute-element types (same
expressive power as our records, but they can sometimes avoid exponential
explosion where we cannot); powerful filter operation.
</p>
</box>
</page>
......@@ -2,20 +2,35 @@
<page name="documentation">
<title>Documentation</title>
<include file="papers.xml"/>
<include file="design.xml"/>
<include file="examples.xml"/>
<include file="tips.xml"/>
<include file="appli.xml"/>
<include file="contrib.xml"/>
<include file="bench.xml"/>
<include file="tutorial.xml"/>
<include file="manual.xml"/>
<include file="memento.xml"/>
<left>
<p>
Here you can find the online documentation
(usually very up to date)
</p>
<pages-toc/>
<p>See also:</p>
<local-links href="papers"/>
</left>
<box>
<ul>
<li><local href="design_features"/></li>
<li><local href="papers"/></li>
<li><local href="examples"/></li>
<li><local href="tips"/></li>
<li><local href="appli"/></li>
<li><local href="contrib"/></li>
<li><local href="bench"/></li>
<li><local href="dtd2cduce"/></li>
</ul>
</box>
<box title="Online documentation" link="src">
<p>
We maintain three kinds of on-line documentation: a <a
......
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page name="funding" new="">
<page name="funding">
<title>Funding</title>
......
......@@ -12,7 +12,7 @@ add features to CDuce. This is not for casual users ! </p>
<box title="Adding operators" link="operators">
<p>
Below is a copy of a mail to the <local href="mailing">CDuce users
Below is a copy of a mail to the <local href="contacts">CDuce users
mailing list</local>, that
describes how to add built-in operators/functions to CDuce.
</p>
......
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page name="img">
<title>Pictures and Logos</title>
<include file="soutenance.xml"/>
<box title="Pictures" link="pictures">
<section title="The CDuce team (January 2004 - Venice)">
<img src="img/seducers.jpg" alt="The CDuce and XDuce teams"/>
<p>
From left to right:
Vronique Benzaken,
Haruo Hosoya (pretending to be an X-man),
Cdric Miachon,
Giuseppe Castagna,
Alain Frisch,
Marwan Burelle.
</p>
</section>
<section title="The CDuce and XDuce teams (January 2004 - Venice)">
<img src="img/C+X.jpg" alt="The CDuce and XDuce teams"/>
</section>
<section title="Alain (February 2004 - Hakone)">
<img src="img/frisch_psd_talk.jpg" alt="Alain Frisch"/>
<p>
It's all about hand-waving.
</p>
</section>
<section title="Giuseppe (February 2004 - Hakone)">
<img src="img/beppe_whiteboard.jpg" alt="Giuseppe Castagna"/>
<p>
Beppe cannot stay still for a photo.
</p>
</section>
<section title="Giuseppe (February 2004 - Hakone)">
<img src="img/beppe_whiteboard2.jpg" alt="Giuseppe Castagna"/>
<p>
Beppe cannot stay still for a photo.
</p>
</section>
<section title="Alain's Ph.D defense (13th December 2004)">
<p>
<local href="soutenance"/>
</p>
</section>
</box>
<box title="Logos" link="logos">
<p>
Feel free to use the following logos on your websites to make
reference to CDuce.
</p>
<p>
<img src="img/cduce_logo.jpg" alt="CDuce banner"/>
<br/>
<img src="img/cducepower.jpg" alt="Powered by CDuce"/>
<br/>
<img src="img/cducepower2.jpg" alt="Powered by CDuce"/>
</p>
</box>
</page>
This diff is collapsed.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page name="mailing">
<title>Mailing Lists</title>
<box title="Available lists" link="lists">
<p>
There are several mailing lists for CDuce:</p>
<ul>
<li><code>users@cduce.org</code>: the main mailing list for CDuce
users.
<a href="http://sympa.cduce.org/wws/arc/users">Archives</a>.
<a href="http://sympa.cduce.org/wws/subrequest/users">Join</a>.
<br/>You can post to this list if you join it.
</li>
<li><code>ocamlduce@cduce.org</code>: discussion and announces about
<local href="ocaml">OCamlDuce</local>.
<a href="http://sympa.cduce.org/wws/arc/ocamlduce">Archives</a>.
<a href="http://sympa.cduce.org/wws/subrequest/ocamlduce">Join</a>.
<br/>You can post to this list if you join it.
</li>
<li><code>announce@cduce.org</code>: announcements about
CDuce (very low traffic).
<a href="http://sympa.cduce.org/wws/arc/announce">Archives</a>.
<a href="http://sympa.cduce.org/wws/subrequest/announce">Join</a>.
<br/>You cannot post to this list.
</li>
<li><code>devel@cduce.org</code>: all the developers of CDuce.
<a href="http://sympa.cduce.org/wws/arc/devel">Archives</a>.
<br/>You cannot join this list, but you can post to it.
</li>
<!--<li><code>staff@cduce.org</code>: all the managers of the CDuce
project.
<br/>Closed. For internal discussion only.
</li>-->
</ul>
<p>
You can also join a mailing list
by sending an e-mail to <code>sympa@cduce.org</code> with subject
"<tt>subscribe <i>list</i></tt>" (where <i>list</i> is one
of users, announce, ocamlduce.
</p>
</box>
<box title="Commands" link="commands">
<p>
You perform several operations (such as unsubscribing or changing the
reception mode) either through the <a
href="http://sympa.cduce.org/wws">web interface of the mailing list
manager</a> or by sending a message to
<code>sympa@cduce.org</code>
</p>
<sample><![CDATA[
To: sympa@cduce.org
Subject: {{command}}
]]></sample>
<p>where <i>command</i> is one of the following:</p>
<ul>
<li> <code>help</code>, to receive abriged instructions.</li>
<li> <code>subscribe {{list}}</code>, to subscribe to <tt><i>list</i>@cduce.org</tt>.</li>
<li> <code>signoff {{list}}</code>, to unsubscribe from <tt><i>list</i>@cduce.org</tt>.</li>
<li> <code>list</code>, to know all the mailing lists available on <tt>cduce.org</tt>.</li>