/[svn]/web/index.xml
ViewVC logotype

Contents of /web/index.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 267 - (show annotations)
Tue Jul 10 17:20:51 2007 UTC (5 years, 10 months ago) by abate
File MIME type: text/xml
File size: 7665 byte(s)
[r2003-03-20 22:52:32 by cvscast] Empty log message

Original author: cvscast
Date: 2003-03-20 22:52:32+00:00
1 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
2 <page>
3
4 <title>CDuce</title>
5 <banner>
6 <img title="CDuce" src="img/cduce_logo.jpg" width="400" height="206"
7 alt="CDuce"/>
8 </banner>
9
10 <!-- ********* Left panel ********* -->
11 <navig>
12
13 <toc/>
14
15 <box>
16 <ul>
17 <li><a href="/cgi-bin/cduce">Online demo</a></li>
18 <li><a href="papers.php">Papers and talks</a></li>
19 <li><a href="team.php">CDuce team</a></li>
20 <li><a href="plan.php">Site map</a></li>
21 <li><a href="bench.php">Benchmarks</a></li>
22 <li><a href="examples.php">Examples</a></li>
23 </ul>
24 </box>
25
26 <box>
27
28 <p> CDuce ("seduce") is a new typed functional language with
29 innovative features.</p>
30
31 <p> Although CDuce is a general programming language, it features
32 several characteristics that make it adapted to XML documents
33 manipulation (transformation, extraction of information, creation of
34 documents).
35 <a href="http://www.w3.org/XML/">XML</a> is a syntax to
36 describe tree-like documents (aka semi-structured data), and XML
37 documents often come with a description of their type. The type is
38 expressed in a system like DTD, or
39 <a href="http://www.w3.org/XML/Schema">XML Schema</a>.
40 XML types play a central role in CDuce.
41 </p>
42
43 </box>
44
45 <box>
46 <p> This site was automatically generated from an XML description of
47 the content by <a href="examples.php#site"> the following CDuce program</a>.
48 </p><p>
49 <img src="img/cducepower2.jpg" alt="Powered by CDuce"/></p>
50 </box>
51
52 <toc/>
53
54
55 </navig>
56
57 <!-- ********* Main panel ********* -->
58
59 <main>
60
61 <box title="What is CDuce ?" link="whatis">
62
63 <p> <b>CDuce</b> is modern programming language, adapted to the
64 manipulation of XML documents. It is developped by the <a
65 href="http://www.di.ens.fr/~castagna/EQUIPE"><b>Languages</b></a>
66 group of ENS in Paris and the <a
67 href="http://www.lri.fr/bd"><b>Databases</b></a> group of LRI in
68 Orsay, two <a href="http://www.cnrs.fr">CNRS</a> labs.
69 See also the <a href="team.php">CDuce team</a> page,
70 our <a href="papers.php">technical papers</a>.
71 </p>
72
73 <section title="Online running prototype">
74 <p> The only available implementation of CDuce is an <a
75 href="cgi-bin/cduce">online prototype</a>. To get a feeling of CDuce,
76 you can try the examples and play with them, or have a look at this <a
77 href="memento.php">memento</a> which briefly explains the syntax of
78 the language. We also have some <a href="examples.php">larger
79 examples</a>. </p>
80
81 <p>We are planning to distribute a first public release in the next
82 few weeks.</p>
83 </section>
84 </box>
85
86 <box title="Design and features" link="whatis">
87 <p> Our point of view and our guideline for the design of CDuce is
88 that a programming language for XML should take XML types (
89 DTD, XML Schema, Relax-NG, ...) seriously. We expect the following
90 benefits:</p>
91
92 <ul>
93 <li> <b>static verifications</b>
94 (e.g.: ensure that a transformation produces a valid document);</li>
95 <li> in particular, we aim at <b>smooth and safe</b> compositions
96 of XML transformations, and incremental programming;</li>
97 <li> static <b>optimizations</b> and <b>efficient execution model</b>
98 (knowing the type of a document is crucial to extract information
99 efficiently).</li>
100 </ul>
101
102 <p>
103 Some of CDuce peculiar features:
104 </p>
105 <ul>
106 <li> XML objects can be manipulated as first-class citizen values:
107 elements, sequences, tags, characters and strings, attribute
108 sets; sequences of XML elements can be specified by
109 <b>regular expressions</b>, which also apply to
110 characters strings; </li>
111 <li> functions themselves are <b>first-class</b> values, they
112 can be manipulated, stored in data structure, returned by
113 a function,...</li>
114 <li> a powerful <b>pattern matching</b> operation can perform
115 complex extractions from sequences of XML elements; </li>
116 <li> a rich <b>type algebra</b>, with recursive types and arbitrary
117 boolean combinations (union, intersection, complement) allows
118 precise definitions of data structures and XML types;
119 <b>general purpose types</b> and types constructors are taken seriously
120 (products, extensible records, arbitrary precision integers with interval
121 constraints, Unicode characters);</li>
122 <li> <b>polymorphism</b> through a natural notion of <b>subtyping</b>,
123 and <b>overloaded functions</b> with dynamic dispatch; </li>
124 <li> an highly-effective <b>type-driven compilation schema</b>. </li>
125 </ul>
126
127 <p>
128 <a href="bench.php">Preliminary benchmarks</a> suggest that a CDuce
129 program can run faster (30% to 60%) than an equivalent XSLT
130 style-sheet (we performed benchmarks with
131 the xsltproc tools from the Gnome libxslt library).
132 </p>
133 </box>
134
135 <box title="Research directions" link="research">
136
137 <p>Our plans concerning the design of the core language
138 include:</p>
139 <ul>
140 <li>a module system to support incremental programming;</li>
141 <li>parametric polymorphism;</li>
142 <li>XML-friendly primitives, to mimic XSLT transformations.</li>
143 </ul>
144
145 <p>
146 Apart from the core language design and implementation,
147 our research projects include:
148 </p>
149 <ul>
150 <li> integration of a <b>query sub-language</b> into CDuce, using
151 types as a primary optimization strategy for request evaluation;</li>
152 <li> study of <b>security</b> (confidentiality, ...) properties in the
153 setting of XML transformations.</li>
154 </ul>
155
156 <p>
157 We wrote several <a href="papers.php">technical papers</a> about
158 the language design and its theoretical foundations.
159 </p>
160 </box>
161
162 <box title="XDuce and CDuce" link="xduce">
163 <p>
164
165 The starting point of our work on CDuce was the
166 <a href="http://xduce.sourceforge.net/">XDuce</a> language developped
167 at the UPenn DB group. Many of CDuce features originate from XDuce.
168 Some of our achievements:
169
170 </p>
171 <ul>
172 <li>integration of first-class and overloaded functions, arbitrary boolean
173 connectives, and extensible (or not) records, to the semantic
174 definition of subtyping;</li>
175 <li>a subtyping algorithm without backtracking;</li>
176 <li>extending pattern matching to capture non consecutive
177 subsequences; removing tail condition for exact matching
178 (they arrived independently to another solution);</li>
179 <li>efficient evaluation model that takes profit of static type information;</li>
180 </ul>
181 <p>
182 Of course, the work on XDuce continued during our, and they
183 developped nice ideas: mixed attribute-element types (same
184 expressive power as our records, but they can sometimes avoid exponential
185 explosion where we cannot); powerful filter operation.
186 </p>
187 </box>
188
189 <box title="Related links" link="links">
190 <ul>
191 <li> <link url="http://www.research.avayalabs.com/user/wadler/xml/"
192 title="XML: Some hyperlinks minus the hype"> By Philip Wadler. </link>
193 </li> </ul> </box>
194
195
196 <meta>
197 <p>
198 <a href="comeon.htm">
199 <img style="border:0;width:88px;height:31px"
200 src="img/cducepower3.png"
201 alt="Powered by CDuce"/>
202 </a>
203
204 <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.cduce.org">
205 <img style="border:0;width:88px;height:31px"
206 src="http://www.w3.org/Icons/valid-xhtml10"
207 alt="Valid XHTML 1.0!"/>
208 </a>
209
210 <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://www.cduce.org">
211 <img style="border:0;width:88px;height:31px"
212 src="http://jigsaw.w3.org/css-validator/images/vcss"
213 alt="Valid CSS!"/>
214 </a>
215
216 <a href="http://www.ens.fr">
217 <img style="border:0"
218 src="img//symbENSmio.gif"
219 alt="ENS" title="ENS"/>
220 </a>
221
222 <a href="http://www.u-psud.fr">
223 <img style="border:0"
224 src="img//symbP11mio.gif"
225 alt="Paris 11" title="Paris 11"/>
226 </a>
227
228 <a href="http://www.cnrs.fr">
229 <img style="border:0"
230 src="img//symbCNRSmio.gif"
231 alt="CNRS" title="CNRS"/>
232 </a>
233 </p>
234 <p>
235 <a href="mailto:Alain.Frisch@ens.fr">Webmaster</a> -
236 <a href="plan.php">Site map</a>
237 </p>
238 </meta>
239
240 </main>
241 </page>

CVS Admin">CVS Admin
ViewVC Help
Powered by ViewVC 1.1.5