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

Contents of /web/index.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 576 - (show annotations)
Tue Jul 10 17:45:53 2007 UTC (5 years, 10 months ago) by abate
File MIME type: text/xml
File size: 8333 byte(s)
[r2003-07-05 00:01:31 by cvscast] Empty log message

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

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