Commit 47e086f2 authored by Pietro Abate's avatar Pietro Abate
Browse files

[r2003-03-16 21:55:42 by cvscast] Empty log message

Original author: cvscast
Date: 2003-03-16 22:01:08+00:00
parent 7e698b89
......@@ -160,9 +160,7 @@ driver/examples.ml: cduce tests/web.cd tests/examples.xml
./cduce -quiet tests/web.cd
WEB_FILES = web/site.xml web/index.xml web/memento.xml web/team.xml \
web/bench.xml web/examples.xml web/papers.xml
web/index.html: cduce.opt web/site.cd $(WEB_FILES)
web/files: cduce.opt web/site.cd
(cd web; ../cduce.opt -quiet site.cd)
# Site-specific installation
......@@ -174,5 +172,5 @@ install_web_local:
ssh root@localhost "cp ~beppe/IMPLEM/CDUCE/webiface /var/www/cgi-bin/cduce; cp ~beppe/IMPLEM/CDUCE/memento.html /var/www/html/; chmod +s /var/www/cgi-bin/cduce; cp ~beppe/IMPLEM/CDUCE/web/index.html /var/www/html"
build_website:
rsh cedre ". .env; cd IMPLEM/CDUCE; make web/index.html"
rsh cedre ". .env; cd IMPLEM/CDUCE; make web/files"
scp web/*.html web/cduce.css cduce@iris:public_html/
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page>
<title>CDuce: code examples</title>
<banner>CDuce: code examples</banner>
<!-- ********* Left panel ********* -->
<navig>
<toc/>
<box>
<p>
This page presents some simple CDuce programs.
</p>
<ul>
<li><a href="/cgi-bin/cduce">Online demo</a></li>
<li><a href="/">Home page</a></li>
<li><a href="memento.html">Syntax memento</a></li>
</ul>
</box>
</navig>
<!-- ********* Main panel ********* -->
<main>
<box title="Our canonical example" link="sort">
<include-verbatim file="overloading.cd"/>
</box>
<box title="The script than generates this site" link="site">
<include-verbatim file="site.cd"/>
</box>
</main>
</page>
......@@ -15,10 +15,11 @@
<box>
<ul>
<li><a href="/cgi-bin/cduce">Online demo</a></li>
<li><a href="papers.html">Technical papers and talks</a></li>
<li><a href="papers.html">Papers and talks</a></li>
<li><a href="team.html">CDuce team</a></li>
<li><a href="plan.html">Site map</a></li>
<li><a href="bench.html">Site map</a></li>
<li><a href="bench.html">Benchmarks</a></li>
<li><a href="examples.html">Examples</a></li>
</ul>
</box>
......@@ -65,7 +66,7 @@ group of ENS in Paris and the <a
href="http://www.lri.fr/bd"><b>Databases</b></a> group of LRI in
Orsay, two <a href="http://www.cnrs.fr">CNRS</a> labs.
See also the <a href="team.html">CDuce team</a> page,
and our <a href="papers.html">technical papers</a>.
our <a href="papers.html">technical papers</a>.
</p>
<section title="Online running prototype">
......@@ -73,7 +74,8 @@ and our <a href="papers.html">technical papers</a>.
href="cgi-bin/cduce">online prototype</a>. To get a feeling of CDuce,
you can try the examples and play with them, or have a look at this <a
href="memento.html">memento</a> which briefly explains the syntax of
the language. </p>
the language. We also have some <a href="examples.html">larger
examples</a>. </p>
<p>We are planning to distribute a first public release in the next
few weeks.</p>
......
type Person = FPerson | MPerson;;
type FPerson = <person gender = "F">[ Name Children ];;
type MPerson = <person gender = "M">[ Name Children ];;
type Children = <children>[ Person* ];;
type Name = <name>[ PCDATA ];;
type Man = <man name=String>[ Sons Daughters ];;
type Woman = <woman name=String>[ Sons Daughters ];;
type Sons = <sons>[ Man* ];;
type Daughters = <daughters>[ Woman* ];;
let fun sort (MPerson -> Man ; FPerson -> Woman)
<person gender=g>[ <name>n <children>[(mc::MPerson | fc::FPerson)*] ] ->
(* this pattern collects all the MPerson in mc, and all the FPerson in fc *)
let tag = match g with "F" -> `woman | "M" -> `man in
let s = map mc with x -> sort x in
let d = map fc with x -> sort x in
<(tag) name=n>[ <sons>s <daughters>d ] ;;
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<page>
<title>Papers and talks about CDuce</title>
<banner>Papers and talks about CDuce</banner>
<!-- ********* Left panel ********* -->
<navig>
<toc/>
<box>
<p>
This page presents Papers and Talks about CDuce.
</p>
<ul>
<li><a href="/cgi-bin/cduce">Online demo</a></li>
<li><a href="/">Home page</a></li>
<li><a href="memento.html">CDuce memento</a></li>
</ul>
</box>
</navig>
<!-- ********* Main panel ********* -->
<main>
<box title="Papers" link="papers">
<section title="Language Description">
<ul>
<li>
<paper file="papers/cduce-wp.ps.gz">
<title>CDuce: a white paper</title>
<author>V. Benzaken</author>
<author>G. Castagna</author>
<author>A. Frisch</author>
<comment>
A preliminary and abriged version of this work was presented at the workshop
<i>PLAN-X: Programming Language Technologies for XML</i>
Pittsburgh PA, Oct. 2002.
</comment>
<abstract> <p> In this paper, we present the functional language CDuce,
discuss some design issues, and show its adequacy for working with
XML documents. Peculiar features of CDuce are a powerful pattern
matching, first class functions, overloaded functions, a very rich
type system (arrows, sequences, pairs, records, intersections,
unions, differences), precise type inference and a natural
interpretation of types as sets of values. We also discuss how to add
constructs for programming XML queries in a declarative (and, thus,
optimizable) way and finally sketch a dispatch algorithm to
demonstrate how static type information can be used in efficient
compilation schemas. </p> </abstract>
</paper>
</li>
</ul>
</section>
<section title="Theoretical foundations">
<ul>
<li>
<paper file="papers/lics02.ps.gz">
<title>Semantic subtyping</title>
<author>A. Frisch</author>
<author>G. Castagna</author>
<author>V. Benzaken</author>
<comment> In <i>LICS 2002</i>. </comment>
<abstract> <p> Usually subtyping relations are defined either
syntactically by a formal system or semantically by an interpretation
of types in an untyped denotational model. In this work we show how
to define a subtyping relation semantically, for a language whose
<i>operational</i> semantics is <i>driven by types</i>; we consider a
rich type algebra, with product, arrow, recursive, intersection,
union and complement types. Our approach is to "bootstrap" the
subtyping relation through a notion of set-theoretic model <i>of the
type algebra</i>. </p>
<p> The advantages of the semantic approach are manifold. Foremost we
get "for free" many properties (e.g., the transitivity of subtyping)
that, with axiomatized subtyping, would require tedious and error
prone proofs. Equally important is that the semantic approach allows
one to <i>derive</i> complete algorithms for the subtyping relation
or the propagation of types through patterns. As the subtyping
relation has a natural (inasmuch as semantic) interpretation, the
type system can give informative error messages when static
type-checking fails. Last but not least the approach has an immediate
impact in the definition <i>and the implementation</i> of languages
manipulating XML documents, as this was our original motivation.
</p> </abstract>
</paper>
</li>
<li>
<paper file="papers/itrs02.ps.gz">
<title>The Relevance of Semantic Subtyping</title>
<author>M. Dezani-Ciancaglini</author>
<author>A. Frisch</author>
<author>E. Giovannetti</author>
<author>Y. Motohama</author>
<comment>
In <i>Electronic Notes in Theoretical Computer Science 70 No.1 (2002)</i>.
</comment>
<abstract> <p> We compare Meyer and Routley's minimal relevant logic
B+ with the recent semantics-based approach to subtyping introduced
by Frisch, Castagna and Benzaken in the definition of a type system
with intersection and union. We show that - for the functional core
of the system - such notion of subtyping, which is defined in purely
set-theoretical terms, coincides with the relevant entailment of the
logic B+. </p> </abstract>
</paper>
</li>
<li>
<paper file="papers/dea.ps.gz">
<title>Types récursifs, combinaisons booléennes et fonctions
surchargées: application au typage de XML</title>
<author>A. Frisch</author>
<comment>In french. Mémoire du DEA « Programmation: Sémantique,
Preuves et Langages » (Paris VII) </comment>
<abstract> <p> Nous étudions un lambda-calcul typé avec une opération
de filtrage qui permet d'exprimer des fonctions
surchargées. L'algèbre de types a des types de base, les types
produit et flèche, les types récursifs, les combinaisons booléennes
finies arbitraires. Nous considérons une notion de sous-typage
sémantique, issue de l'interprétation des types comme ensembles de
valeurs du langage. </p>
<p> Les caractéristiques présentes dans le calcul et l'algèbre de
types sont motivées par l'utilisation du calcul comme un noyau pour
un langage adapté à la manipulation de documents XML. </p>
<p> Nous utilisons une approche sémantique pour étudier l'algèbre de
types, tout en conservant une preuve syntaxique de préservation du
typage par réduction. </p> </abstract>
</paper>
</li>
</ul>
</section>
<section title="Security">
<ul>
<li>
<paper file="papers/sec.ps.gz">
<title>Security analysis for XML transformations</title>
<author>M. Burelle</author>
<author>V. Benzaken</author>
<author>G. Castagna</author>
<comment> <a href="http://www.myths.eu.org">MyThS</a> technical
report. </comment>
<abstract> <p> In this article we give a formal definition of
information flows in the context of XML transformations and, more
generally, in the presence of type dependent computations. We
formalize a sound technique to detect XML document transformations
that may leak private or confidential information. By defining
security annotations and by relating various kind of analyses to
different query scenarios, we also establish a general framework for
checking middleware-located information flows. </p> </abstract>
</paper>
</li>
</ul>
</section>
</box>
<box title="Slides" link="slides">
<ul>
<li>
<slides file="slides/lri02.pdf">
<title>Semantic Subtyping</title>
<author>A. Frisch</author>
<author>G. Castagna</author>
<author>V. Benzaken</author>
<comment>Slides of a presentation given at LRI Database Group (2002-12)</comment>
</slides>
</li>
<li>
<slides file="slides/planx2002.pdf.gz">
<title>CDuce: a white paper</title>
<author>V. Benzaken</author>
<author>G. Castagna</author>
<author>A. Frisch</author>
<comment>Slides of the presentation given at the PLANX 2002 Workshop
in Pittsburgh (2002-09)</comment>
</slides>
</li>
<li>
<slides
file="ftp://ftp.ens.fr/pub/di/users/castagna/SLIDES/cduce-wp-slides.pdf.gz">
<title>CDuce: a white paper</title>
<author>V. Benzaken</author>
<author>G. Castagna</author>
<author>A. Frisch</author>
<comment>Slides of the presentation given at MyThS meeting in
Bertinoro (2002-12) </comment>
</slides>
</li>
<li>
<slides file="ftp://ftp.ens.fr/pub/di/users/castagna/SLIDES/cduce-sec.ps.gz">
<title>CDuce: document security</title>
<author>V. Benzaken</author>
<author>M. Burelle</author>
<author>G. Castagna</author>
<comment>Slides of the presentation given at FOSAD school (september
2002) </comment>
</slides>
</li>
</ul>
</box>
</main>
</page>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment