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

Contents of /web/index.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 352 - (hide annotations)
Tue Jul 10 17:27:28 2007 UTC (5 years, 10 months ago) by abate
File MIME type: text/xml
File size: 7922 byte(s)
[r2003-05-14 22:58:16 by cvscast] Adding links on home page

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

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