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

Contents of /web/index.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 681 - (hide annotations)
Tue Jul 10 17:54:10 2007 UTC (5 years, 10 months ago) by abate
File MIME type: text/xml
File size: 9771 byte(s)
[r2003-09-25 20:25:22 by cvscast] Empty log message

Original author: cvscast
Date: 2003-09-25 20:25:23+00:00
1 abate 253 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
2 abate 341 <page name="index">
3 abate 253
4 abate 350 <title>Home page</title>
5 abate 253 <banner>
6     <img title="CDuce" src="img/cduce_logo.jpg" width="400" height="206"
7     alt="CDuce"/>
8     </banner>
9    
10 abate 341 <left>
11     <p>On this page:</p>
12     <boxes-toc/>
13     <p>Under this page:</p>
14     <pages-toc/>
15     </left>
16 abate 253
17 abate 341 <external href="/cgi-bin/cduce" title="Online demo" name="proto"/>
18 abate 437 <include file="download.xml"/>
19 abate 341 <include file="bench.xml"/>
20     <include file="papers.xml"/>
21 abate 681 <include file="documentation.xml"/>
22 abate 341 <include file="examples.xml"/>
23 abate 647 <include file="hacking.xml"/>
24 abate 598 <include file="mailing.xml"/>
25 abate 649 <include file="team.xml"/>
26 abate 341 <include file="sitemap.xml"/>
27 abate 253
28 abate 576
29 abate 341 <left>
30 abate 255
31 abate 253 <p> CDuce ("seduce") is a new typed functional language with
32 abate 258 innovative features.</p>
33 abate 253
34     <p> Although CDuce is a general programming language, it features
35     several characteristics that make it adapted to XML documents
36     manipulation (transformation, extraction of information, creation of
37     documents).
38     <a href="http://www.w3.org/XML/">XML</a> is a syntax to
39     describe tree-like documents (aka semi-structured data), and XML
40     documents often come with a description of their type. The type is
41     expressed in a system like DTD, or
42 abate 258 <a href="http://www.w3.org/XML/Schema">XML Schema</a>.
43     XML types play a central role in CDuce.
44     </p>
45 abate 253
46 abate 341 </left>
47 abate 253
48 abate 341 <left>
49 abate 305 <p> All pages of this site were automatically generated from an XML description of
50 abate 347 the content by <a href="examples.html#site">the following CDuce program</a>.
51 abate 267 </p><p>
52 abate 253 <img src="img/cducepower2.jpg" alt="Powered by CDuce"/></p>
53 abate 341 </left>
54 abate 253
55 abate 674 <box title="Latest News" link="news">
56 abate 253
57 abate 676 <section title="2003, September 23rd, Wednesday: Volunteers sought.">
58 abate 674 <p>
59 abate 676 We look for volunteers to prepare an emacs mode for CDuce and to implement a native Win32 or MinGW port. If your are interested please contact
60 abate 674 us.
61     </p>
62     <br/>
63     </section>
64    
65    
66     <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 abate 676 <code>:=</code> and <code>;</code>. It is available at the <a href="download">usual place</a>. Try this
70 abate 674 <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 abate 676 <a href="manual_expressions.html#ref">manual pages</a> for more
73 abate 674 information.
74     </p>
75     <br/>
76     </section>
77     </box>
78    
79    
80 abate 258 <box title="What is CDuce ?" link="whatis">
81 abate 253
82 abate 258 <p> <b>CDuce</b> is modern programming language, adapted to the
83 abate 674 manipulation of XML documents. It is developed by the <a
84 abate 258 href="http://www.di.ens.fr/~castagna/EQUIPE"><b>Languages</b></a>
85     group of ENS in Paris and the <a
86     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.
88 abate 347 See also the <local href="team">CDuce team</local> page,
89     our <local href="papers">technical papers</local>.
90 abate 258 </p>
91    
92 abate 591 <section title="Getting more information">
93    
94     <p>
95 abate 598 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 abate 591 </p>
99    
100     </section>
101    
102 abate 253 <section title="Online running prototype">
103 abate 437 <p> To get a feeling of CDuce,
104 abate 674 you can play with the <local href="proto">on-line prototype</local>,
105 abate 437 try the examples and modify them. We also have some
106     <local href="examples">larger examples</local>. </p>
107 abate 253
108 abate 562 <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 abate 437 </p>
112    
113 abate 258 </section>
114 abate 253 </box>
115    
116 abate 341 <box title="Design and features" link="design">
117 abate 258 <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 (
119 abate 545 DTD, XML Schema, Relax-NG, ...) seriously. The benefit are the following:</p>
120 abate 253
121 abate 258 <ul>
122     <li> <b>static verifications</b>
123 abate 625 (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 abate 258 <li> in particular, we aim at <b>smooth and safe</b> compositions
134     of XML transformations, and incremental programming;</li>
135     <li> static <b>optimizations</b> and <b>efficient execution model</b>
136     (knowing the type of a document is crucial to extract information
137     efficiently).</li>
138 abate 253 </ul>
139    
140 abate 258 <p>
141 abate 642 Some features particular to CDuce:
142 abate 258 </p>
143 abate 253 <ul>
144 abate 258 <li> XML objects can be manipulated as first-class citizen values:
145     elements, sequences, tags, characters and strings, attribute
146     sets; sequences of XML elements can be specified by
147     <b>regular expressions</b>, which also apply to
148     characters strings; </li>
149     <li> functions themselves are <b>first-class</b> values, they
150     can be manipulated, stored in data structure, returned by
151     a function,...</li>
152     <li> a powerful <b>pattern matching</b> operation can perform
153     complex extractions from sequences of XML elements; </li>
154     <li> a rich <b>type algebra</b>, with recursive types and arbitrary
155     boolean combinations (union, intersection, complement) allows
156     precise definitions of data structures and XML types;
157     <b>general purpose types</b> and types constructors are taken seriously
158     (products, extensible records, arbitrary precision integers with interval
159     constraints, Unicode characters);</li>
160     <li> <b>polymorphism</b> through a natural notion of <b>subtyping</b>,
161     and <b>overloaded functions</b> with dynamic dispatch; </li>
162     <li> an highly-effective <b>type-driven compilation schema</b>. </li>
163     </ul>
164 abate 253
165 abate 565 <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 abate 258 <p>
173 abate 347 <local href="bench">Preliminary benchmarks</local> suggest that despite the
174 abate 300 overhead for static type verification, a CDuce
175 abate 258 program can run faster (30% to 60%) than an equivalent XSLT
176     style-sheet (we performed benchmarks with
177     the xsltproc tools from the Gnome libxslt library).
178     </p>
179 abate 616
180 abate 625
181 abate 258 </box>
182 abate 253
183 abate 258 <box title="Research directions" link="research">
184 abate 253
185 abate 258 <p>Our plans concerning the design of the core language
186     include:</p>
187     <ul>
188     <li>a module system to support incremental programming;</li>
189     <li>parametric polymorphism;</li>
190     <li>XML-friendly primitives, to mimic XSLT transformations.</li>
191 abate 253 </ul>
192    
193 abate 258 <p>
194     Apart from the core language design and implementation,
195     our research projects include:
196     </p>
197 abate 253 <ul>
198 abate 258 <li> integration of a <b>query sub-language</b> into CDuce, using
199     types as a primary optimization strategy for request evaluation;</li>
200     <li> study of <b>security</b> (confidentiality, ...) properties in the
201     setting of XML transformations.</li>
202 abate 253 </ul>
203    
204 abate 258 <p>
205 abate 347 We wrote several <local href="papers">technical papers</local> about
206 abate 258 the language design and its theoretical foundations.
207     </p>
208 abate 253 </box>
209    
210 abate 258 <box title="XDuce and CDuce" link="xduce">
211     <p>
212 abate 253
213 abate 258 The starting point of our work on CDuce was the
214 abate 674 <a href="http://xduce.sourceforge.net/">XDuce</a> language developed
215 abate 258 at the UPenn DB group. Many of CDuce features originate from XDuce.
216     Some of our achievements:
217 abate 253
218 abate 258 </p>
219     <ul>
220     <li>integration of first-class and overloaded functions, arbitrary boolean
221     connectives, and extensible (or not) records, to the semantic
222     definition of subtyping;</li>
223     <li>a subtyping algorithm without backtracking;</li>
224     <li>extending pattern matching to capture non consecutive
225     subsequences; removing tail condition for exact matching
226     (they arrived independently to another solution);</li>
227     <li>efficient evaluation model that takes profit of static type information;</li>
228 abate 253 </ul>
229 abate 258 <p>
230     Of course, the work on XDuce continued during our, and they
231 abate 674 developed nice ideas: mixed attribute-element types (same
232 abate 258 expressive power as our records, but they can sometimes avoid exponential
233     explosion where we cannot); powerful filter operation.
234     </p>
235 abate 614
236 abate 253 </box>
237    
238     <box title="Related links" link="links">
239     <ul>
240 abate 352 <li> <link url="http://www.w3.org/XML/"
241     title="Extensible Markup Language (XML)"> The W3C page on XML. </link>
242     </li>
243 abate 253 <li> <link url="http://www.research.avayalabs.com/user/wadler/xml/"
244     title="XML: Some hyperlinks minus the hype"> By Philip Wadler. </link>
245 abate 352 </li>
246     <li> <link url="http://xduce.sourceforge.net/"
247     title="XDuce"> XDuce home page. </link> </li>
248     </ul> </box>
249 abate 253
250    
251     <meta>
252     <p>
253     <a href="comeon.htm">
254     <img style="border:0;width:88px;height:31px"
255     src="img/cducepower3.png"
256     alt="Powered by CDuce"/>
257     </a>
258    
259 abate 257 <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fwww.cduce.org">
260 abate 253 <img style="border:0;width:88px;height:31px"
261     src="http://www.w3.org/Icons/valid-xhtml10"
262     alt="Valid XHTML 1.0!"/>
263     </a>
264    
265 abate 401 <a href="http://jigsaw.w3.org/css-validator/">
266 abate 253 <img style="border:0;width:88px;height:31px"
267     src="http://jigsaw.w3.org/css-validator/images/vcss"
268     alt="Valid CSS!"/>
269     </a>
270    
271     <a href="http://www.ens.fr">
272     <img style="border:0"
273     src="img//symbENSmio.gif"
274     alt="ENS" title="ENS"/>
275     </a>
276    
277     <a href="http://www.u-psud.fr">
278     <img style="border:0"
279     src="img//symbP11mio.gif"
280     alt="Paris 11" title="Paris 11"/>
281     </a>
282    
283     <a href="http://www.cnrs.fr">
284     <img style="border:0"
285     src="img//symbCNRSmio.gif"
286     alt="CNRS" title="CNRS"/>
287     </a>
288     </p>
289     <p>
290 abate 255 <a href="mailto:Alain.Frisch@ens.fr">Webmaster</a> -
291 abate 347 <local href="sitemap">Site map</local>
292 abate 253 </p>
293     </meta>
294    
295     </page>

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