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

Contents of /web/index.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 258 - (hide annotations)
Tue Jul 10 17:19:59 2007 UTC (5 years, 10 months ago) by abate
File MIME type: text/xml
File size: 7528 byte(s)
[r2003-03-16 21:54:11 by cvscast] Empty log message

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

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