| 1 |
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> |
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> |
| 2 |
<page output="index.php"> |
<page name="index"> |
| 3 |
|
|
| 4 |
<title>CDuce</title> |
<title>Home page</title> |
| 5 |
<banner> |
<banner> |
| 6 |
<img title="CDuce" src="img/cduce_logo.jpg" width="400" height="206" |
<img title="CDuce" src="img/cduce_logo.jpg" width="400" height="206" |
| 7 |
alt="CDuce"/> |
alt="CDuce"/> |
| 8 |
</banner> |
</banner> |
| 9 |
|
|
| 10 |
<!-- ********* Left panel ********* --> |
<left> |
| 11 |
<navig> |
<p>On this page:</p> |
| 12 |
|
<boxes-toc/> |
| 13 |
|
<p>Under this page:</p> |
| 14 |
|
<pages-toc/> |
| 15 |
|
</left> |
| 16 |
|
|
| 17 |
|
<external href="/cgi-bin/cduce" title="Online demo" name="proto"/> |
| 18 |
|
<include file="download.xml"/> |
| 19 |
|
<include file="bench.xml"/> |
| 20 |
|
<include file="papers.xml"/> |
| 21 |
|
<include file="manual.xml"/> |
| 22 |
|
<include file="examples.xml"/> |
| 23 |
|
<include file="hacking.xml"/> |
| 24 |
|
<include file="mailing.xml"/> |
| 25 |
|
<include file="team.xml"/> |
| 26 |
|
<include file="sitemap.xml"/> |
| 27 |
|
|
|
<toc/> |
|
| 28 |
|
|
| 29 |
<box> |
<left> |
|
<ul> |
|
|
<li><a href="plan.php">Site map</a></li> |
|
|
<li><a href="/cgi-bin/cduce">Online demo</a></li> |
|
|
<li><a href="papers.php">Papers and talks</a></li> |
|
|
<li><a href="team.php">CDuce team</a></li> |
|
|
<li><a href="bench.php">Benchmarks</a></li> |
|
|
<li><a href="examples.php">Examples</a></li> |
|
|
<li><a href="memento.php">Memento</a></li> |
|
|
<li><a href="tutorial.php">Tutorial</a></li> |
|
|
</ul> |
|
|
</box> |
|
|
|
|
|
<box> |
|
| 30 |
|
|
| 31 |
<p> CDuce ("seduce") is a new typed functional language with |
<p> CDuce ("seduce") is a new typed functional language with |
| 32 |
innovative features.</p> |
innovative features.</p> |
| 43 |
XML types play a central role in CDuce. |
XML types play a central role in CDuce. |
| 44 |
</p> |
</p> |
| 45 |
|
|
| 46 |
</box> |
</left> |
| 47 |
|
|
| 48 |
<box> |
<left> |
| 49 |
<p> All pages of this site were automatically generated from an XML description of |
<p> All pages of this site were automatically generated from an XML description of |
| 50 |
the content by <a href="examples.php#site"> the following CDuce program</a>. |
the content by <a href="examples.html#site">the following CDuce program</a>. |
| 51 |
</p><p> |
</p><p> |
| 52 |
<img src="img/cducepower2.jpg" alt="Powered by CDuce"/></p> |
<img src="img/cducepower2.jpg" alt="Powered by CDuce"/></p> |
| 53 |
</box> |
</left> |
| 54 |
|
|
| 55 |
<toc/> |
<box title="Latest News" link="news"> |
| 56 |
|
|
| 57 |
|
<section title="2003, September 23rd, Saturday: Emacs Voluteer sought."> |
| 58 |
|
<p> |
| 59 |
|
We look for a volunteer to prepare an emacs mode for CDuce. Please contact |
| 60 |
|
us. |
| 61 |
|
</p> |
| 62 |
|
<br/> |
| 63 |
|
</section> |
| 64 |
|
|
|
</navig> |
|
| 65 |
|
|
| 66 |
<!-- ********* Main panel ********* --> |
<section title="2003, August 16th, Saturday: Version 0.1.1 released."> |
| 67 |
|
<p> |
| 68 |
|
This version has several bug-fixes and encodes reference types. You can now use |
| 69 |
|
<code>:=</code> and <code>;</code>. It is available at the <a href="http://www.cduce.org/download">usual place</a>. Try this |
| 70 |
|
<a href="http://www.cduce.org/cgi-bin/cduce?example=reference">code</a> on |
| 71 |
|
the on-line demo for an example on how to use them, and refer to the |
| 72 |
|
<a href="http://www.cduce.org/manual_expressions.html#ref">manual pages</a> for more |
| 73 |
|
information. |
| 74 |
|
</p> |
| 75 |
|
<br/> |
| 76 |
|
</section> |
| 77 |
|
</box> |
| 78 |
|
|
|
<main> |
|
| 79 |
|
|
| 80 |
<box title="What is CDuce ?" link="whatis"> |
<box title="What is CDuce ?" link="whatis"> |
| 81 |
|
|
| 82 |
<p> <b>CDuce</b> is modern programming language, adapted to the |
<p> <b>CDuce</b> is modern programming language, adapted to the |
| 83 |
manipulation of XML documents. It is developped by the <a |
manipulation of XML documents. It is developed by the <a |
| 84 |
href="http://www.di.ens.fr/~castagna/EQUIPE"><b>Languages</b></a> |
href="http://www.di.ens.fr/~castagna/EQUIPE"><b>Languages</b></a> |
| 85 |
group of ENS in Paris and the <a |
group of ENS in Paris and the <a |
| 86 |
href="http://www.lri.fr/bd"><b>Databases</b></a> group of LRI in |
href="http://www.lri.fr/bd"><b>Databases</b></a> group of LRI in |
| 87 |
Orsay, two <a href="http://www.cnrs.fr">CNRS</a> labs. |
Orsay, two <a href="http://www.cnrs.fr">CNRS</a> labs. |
| 88 |
See also the <a href="team.php">CDuce team</a> page, |
See also the <local href="team">CDuce team</local> page, |
| 89 |
our <a href="papers.php">technical papers</a>. |
our <local href="papers">technical papers</local>. |
| 90 |
</p> |
</p> |
| 91 |
|
|
| 92 |
|
<section title="Getting more information"> |
| 93 |
|
|
| 94 |
|
<p> |
| 95 |
|
If you want more information about CDuce you can send a mail to |
| 96 |
|
<tt>info_at_cduce.org</tt> (replace <tt>_at_</tt> with <tt>@</tt>), or |
| 97 |
|
to the most appropriate <a href="mailing.html">CDuce mailing list</a>. |
| 98 |
|
</p> |
| 99 |
|
|
| 100 |
|
</section> |
| 101 |
|
|
| 102 |
<section title="Online running prototype"> |
<section title="Online running prototype"> |
| 103 |
<p> The only available implementation of CDuce is an <a |
<p> To get a feeling of CDuce, |
| 104 |
href="cgi-bin/cduce">online prototype</a>. To get a feeling of CDuce, |
you can play with the <local href="proto">on-line prototype</local>, |
| 105 |
you can try the examples and play with them, or have a look at this <a |
try the examples and modify them. We also have some |
| 106 |
href="memento.php">memento</a> which briefly explains the syntax of |
<local href="examples">larger examples</local>. </p> |
| 107 |
the language. We also have some <a href="examples.php">larger |
|
| 108 |
examples</a>. </p> |
<p>We are planning to distribute a stable release in the next |
| 109 |
|
few weeks. To help us prepare this release, you can download a |
| 110 |
|
<local href="download">beta version</local>, and send your comments. |
| 111 |
|
</p> |
| 112 |
|
|
|
<p>We are planning to distribute a first public release in the next |
|
|
few weeks.</p> |
|
| 113 |
</section> |
</section> |
| 114 |
</box> |
</box> |
| 115 |
|
|
| 116 |
<box title="Design and features" link="whatis"> |
<box title="Design and features" link="design"> |
| 117 |
<p> Our point of view and our guideline for the design of CDuce is |
<p> Our point of view and our guideline for the design of CDuce is |
| 118 |
that a programming language for XML should take XML types ( |
that a programming language for XML should take XML types ( |
| 119 |
DTD, XML Schema, Relax-NG, ...) seriously. We expect the following |
DTD, XML Schema, Relax-NG, ...) seriously. The benefit are the following:</p> |
|
benefits:</p> |
|
| 120 |
|
|
| 121 |
<ul> |
<ul> |
| 122 |
<li> <b>static verifications</b> |
<li> <b>static verifications</b> |
| 123 |
(e.g.: ensure that a transformation produces a valid document);</li> |
(e.g.: ensure that a transformation produces a valid document |
| 124 |
|
<footnote> |
| 125 |
|
|
| 126 |
|
Valid with respect to validity constraints |
| 127 |
|
that can be expressed by the type system (thus typically excluding |
| 128 |
|
constraints like <a |
| 129 |
|
href="http://www.w3.org/TR/REC-xml#sec-attribute-types">ID</a> and |
| 130 |
|
<a href="http://www.w3.org/TR/REC-xml#sec-attribute-types">IDREF</a>). |
| 131 |
|
|
| 132 |
|
</footnote>);</li> |
| 133 |
<li> in particular, we aim at <b>smooth and safe</b> compositions |
<li> in particular, we aim at <b>smooth and safe</b> compositions |
| 134 |
of XML transformations, and incremental programming;</li> |
of XML transformations, and incremental programming;</li> |
| 135 |
<li> static <b>optimizations</b> and <b>efficient execution model</b> |
<li> static <b>optimizations</b> and <b>efficient execution model</b> |
| 138 |
</ul> |
</ul> |
| 139 |
|
|
| 140 |
<p> |
<p> |
| 141 |
Some of CDuce peculiar features: |
Some features particular to CDuce: |
| 142 |
</p> |
</p> |
| 143 |
<ul> |
<ul> |
| 144 |
<li> XML objects can be manipulated as first-class citizen values: |
<li> XML objects can be manipulated as first-class citizen values: |
| 162 |
<li> an highly-effective <b>type-driven compilation schema</b>. </li> |
<li> an highly-effective <b>type-driven compilation schema</b>. </li> |
| 163 |
</ul> |
</ul> |
| 164 |
|
|
| 165 |
|
<p>CDuce is fast, functional, |
| 166 |
|
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>, |
| 167 |
|
<a href="http://www.w3.org/TR/REC-xml-names/">Namespaces</a> are fully supported, partial support of <a href="http://www.w3.org/TR/xmlschema-1/">XML Schema</a> validation is |
| 168 |
|
in alpha testing (and undocumented) while queries are being |
| 169 |
|
implemented. |
| 170 |
|
</p> |
| 171 |
|
|
| 172 |
<p> |
<p> |
| 173 |
<a href="bench.php">Preliminary benchmarks</a> suggest that despite the |
<local href="bench">Preliminary benchmarks</local> suggest that despite the |
| 174 |
overhead for static type verification, a CDuce |
overhead for static type verification, a CDuce |
| 175 |
program can run faster (30% to 60%) than an equivalent XSLT |
program can run faster (30% to 60%) than an equivalent XSLT |
| 176 |
style-sheet (we performed benchmarks with |
style-sheet (we performed benchmarks with |
| 177 |
the xsltproc tools from the Gnome libxslt library). |
the xsltproc tools from the Gnome libxslt library). |
| 178 |
</p> |
</p> |
| 179 |
|
|
| 180 |
|
|
| 181 |
</box> |
</box> |
| 182 |
|
|
| 183 |
<box title="Research directions" link="research"> |
<box title="Research directions" link="research"> |
| 202 |
</ul> |
</ul> |
| 203 |
|
|
| 204 |
<p> |
<p> |
| 205 |
We wrote several <a href="papers.php">technical papers</a> about |
We wrote several <local href="papers">technical papers</local> about |
| 206 |
the language design and its theoretical foundations. |
the language design and its theoretical foundations. |
| 207 |
</p> |
</p> |
| 208 |
</box> |
</box> |
| 211 |
<p> |
<p> |
| 212 |
|
|
| 213 |
The starting point of our work on CDuce was the |
The starting point of our work on CDuce was the |
| 214 |
<a href="http://xduce.sourceforge.net/">XDuce</a> language developped |
<a href="http://xduce.sourceforge.net/">XDuce</a> language developed |
| 215 |
at the UPenn DB group. Many of CDuce features originate from XDuce. |
at the UPenn DB group. Many of CDuce features originate from XDuce. |
| 216 |
Some of our achievements: |
Some of our achievements: |
| 217 |
|
|
| 228 |
</ul> |
</ul> |
| 229 |
<p> |
<p> |
| 230 |
Of course, the work on XDuce continued during our, and they |
Of course, the work on XDuce continued during our, and they |
| 231 |
developped nice ideas: mixed attribute-element types (same |
developed nice ideas: mixed attribute-element types (same |
| 232 |
expressive power as our records, but they can sometimes avoid exponential |
expressive power as our records, but they can sometimes avoid exponential |
| 233 |
explosion where we cannot); powerful filter operation. |
explosion where we cannot); powerful filter operation. |
| 234 |
</p> |
</p> |
| 235 |
|
|
| 236 |
</box> |
</box> |
| 237 |
|
|
| 238 |
<box title="Related links" link="links"> |
<box title="Related links" link="links"> |
| 239 |
<ul> |
<ul> |
| 240 |
|
<li> <link url="http://www.w3.org/XML/" |
| 241 |
|
title="Extensible Markup Language (XML)"> The W3C page on XML. </link> |
| 242 |
|
</li> |
| 243 |
<li> <link url="http://www.research.avayalabs.com/user/wadler/xml/" |
<li> <link url="http://www.research.avayalabs.com/user/wadler/xml/" |
| 244 |
title="XML: Some hyperlinks minus the hype"> By Philip Wadler. </link> |
title="XML: Some hyperlinks minus the hype"> By Philip Wadler. </link> |
| 245 |
</li> </ul> </box> |
</li> |
| 246 |
|
<li> <link url="http://xduce.sourceforge.net/" |
| 247 |
|
title="XDuce"> XDuce home page. </link> </li> |
| 248 |
|
</ul> </box> |
| 249 |
|
|
| 250 |
|
|
| 251 |
<meta> |
<meta> |
| 262 |
alt="Valid XHTML 1.0!"/> |
alt="Valid XHTML 1.0!"/> |
| 263 |
</a> |
</a> |
| 264 |
|
|
| 265 |
<a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.cduce.org"> |
<a href="http://jigsaw.w3.org/css-validator/"> |
| 266 |
<img style="border:0;width:88px;height:31px" |
<img style="border:0;width:88px;height:31px" |
| 267 |
src="http://jigsaw.w3.org/css-validator/images/vcss" |
src="http://jigsaw.w3.org/css-validator/images/vcss" |
| 268 |
alt="Valid CSS!"/> |
alt="Valid CSS!"/> |
| 288 |
</p> |
</p> |
| 289 |
<p> |
<p> |
| 290 |
<a href="mailto:Alain.Frisch@ens.fr">Webmaster</a> - |
<a href="mailto:Alain.Frisch@ens.fr">Webmaster</a> - |
| 291 |
<a href="plan.php">Site map</a> |
<local href="sitemap">Site map</local> |
| 292 |
</p> |
</p> |
| 293 |
</meta> |
</meta> |
| 294 |
|
|
|
</main> |
|
| 295 |
</page> |
</page> |