Commit 78d95413 authored by Pietro Abate's avatar Pietro Abate
Browse files

[r2004-04-13 13:49:40 by afrisch] Update website

Original author: afrisch
Date: 2004-04-13 13:49:40+00:00
parent b0c783bd
......@@ -51,6 +51,7 @@ the content by <a href="examples.html#site">the following CDuce program</a>.
</p><p><img src="img/cducepower.jpg" alt="Powered by CDuce"/></p>
</left>
<!--
<box title="Latest News" link="news">
<section title="2003, December 8th, Monday: New addition to papers.">
<p>
......@@ -103,7 +104,7 @@ information.
<br/>
</section>
</box>
-->
<box title="What is CDuce ?" link="whatis">
......@@ -114,10 +115,18 @@ 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 <local href="team">CDuce team</local> page,
our <local href="papers">technical papers</local>.
and our <local href="papers">technical papers</local>.
</p>
<section title="Getting more information">
<section title="Getting information">
<p>
The online <local href="documentation">documentation</local>
contains a <local href="tutorial"/> and a <local href="manual"/>.
You can also have a look at some <local
href="examples">examples</local>
of CDuce programs.
</p>
<p>
If you want more information about CDuce you can send a mail to
......@@ -130,21 +139,22 @@ to the most appropriate <a href="mailing.html">CDuce mailing list</a>.
<section title="Online running prototype">
<p> To get a feeling of CDuce,
you can play with the <local href="proto">on-line prototype</local>,
try the examples and modify them. We also have some
<local href="examples">larger examples</local>. </p>
try the examples and modify them. </p>
</section>
<p>We are planning to distribute a stable release in the next
few weeks. To help us prepare this release, you can download a
<local href="download">beta version</local>, and send your comments.
<section title="Download">
<p>
You can <local href="download">download</local> a beta
version of CDuce, or a snapshot from the working CVS repository.
</p>
</section>
</box>
<box title="Design and features" link="design">
<p> Our point of view and our guideline for the design of CDuce is
that a programming language for XML should take XML types (
DTD, XML Schema, Relax-NG, ...) seriously. The benefit are the following:</p>
DTD, XML Schema, Relax-NG, ...) seriously into account.
The benefit are the following:</p>
<ul>
<li> <b>static verifications</b>
......@@ -192,9 +202,9 @@ Some features particular to CDuce:
<p>CDuce is fast, functional,
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>,
<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
in alpha testing (and undocumented) while queries are being
implemented.
<a href="http://www.w3.org/TR/REC-xml-names/">Namespaces</a> are fully
supported, <a href="http://www.w3.org/TR/xmlschema-1/">XML Schema</a>
is partially <local href="manual_schema">supported</local>.
</p>
<p>
......@@ -210,6 +220,8 @@ The name CDuce was coined by <a
href="http://www.di.ens.fr/~zappa">Francesco Zappa Nardelli</a>.
</p>
<footnotes/>
</box>
<box title="Research directions" link="research">
......@@ -217,7 +229,15 @@ href="http://www.di.ens.fr/~zappa">Francesco Zappa Nardelli</a>.
<p>Our plans concerning the design of the core language
include:</p>
<ul>
<li>interface with other languages and type systems;</li>
<li>interface with other languages and type systems
<footnote>
An <local href="manual_interfacewithocaml">
interface between CDuce and OCaml
</local> is currently being
implemented.
</footnote>
;
</li>
<li>efficient evaluation strategies, high-level optimizations;</li>
<li>a module system to support incremental programming;</li>
<li>parametric polymorphism;</li>
......@@ -239,6 +259,9 @@ our research projects include:
We wrote several <local href="papers">technical papers</local> about
the language design and its theoretical foundations.
</p>
<footnotes/>
</box>
<box title="XDuce and CDuce" link="xduce">
......@@ -279,6 +302,8 @@ title="XML: Some hyperlinks minus the hype"> By Philip Wadler. </link>
</li>
<li> <link url="http://xduce.sourceforge.net/"
title="XDuce"> XDuce home page. </link> </li>
<li> <link url="http://www.cis.upenn.edu/~bcpierce/xtatic/"
title="Xtatic"> The Xtatic Project. </link> </li>
</ul> </box>
......@@ -326,4 +351,66 @@ title="XDuce"> XDuce home page. </link> </li>
</p>
</meta>
<page name="img" new="">
<title>Pictures and Logos</title>
<left>
<boxes-toc/>
<p>See also:</p>
<local-links href="index,team,sitemap"/>
</left>
<box title="Pictures" link="pictures">
<section title="The CDuce team (January 2004 - Venice)">
<img src="img/seducers.jpg" alt="The CDuce and XDuce teams"/>
<p>
From left to right:
Véronique Benzaken,
Haruo Hosoya (pretending to be an X-man),
Cédric Miachon,
Giuseppe Castagna,
Alain Frisch,
Marwan Burelle.
</p>
</section>
<section title="The CDuce and XDuce teams (January 2004 - Venice)">
<img src="img/C+X.jpg" alt="The CDuce and XDuce teams"/>
</section>
<section title="Alain (February 2004 - Hakone)">
<img src="img/frisch_psd_talk.jpg" alt="Alain Frisch"/>
<p>
It's all about hand-waving.
</p>
</section>
<section title="Giuseppe (February 2004 - Hakone)">
<img src="img/beppe_whiteboard.jpg" alt="Giuseppe Castagna"/>
<p>
Beppe cannot stay still for a photo.
</p>
</section>
<section title="Giuseppe (February 2004 - Hakone)">
<img src="img/beppe_whiteboard2.jpg" alt="Giuseppe Castagna"/>
<p>
Beppe cannot stay still for a photo.
</p>
</section>
</box>
<box title="Logos" link="logos">
<p>
Feel free to use the following logos on your websites to make
reference to CDuce.
</p>
<p>
<img src="img/cduce_logo.jpg" alt="CDuce banner"/>
<br/>
<img src="img/cducepower.jpg" alt="Powered by CDuce"/>
<br/>
<img src="img/cducepower2.jpg" alt="Powered by CDuce"/>
</p>
</box>
</page>
</page>
......@@ -28,7 +28,9 @@ subscribe to <tt>users@cduce.org</tt> do:
To: sympa@cduce.org
Subject: subscribe users
]]></sample>
subscription to <b>devel</b> and <b>staff</b> is restricted: subscription to devel must required to <b>staff@cduce.org</b> while this latter is closed.
<p>
Subscription to <b>devel</b> and <b>staff</b> are closed.
</p>
</box>
......@@ -68,4 +70,4 @@ The administrators of the list can use the following further commands
<li> <b>review <i>list</i></b>, to obtain the list of all subscribers.</li>
</ul>
</box>
</page>
\ No newline at end of file
</page>
......@@ -41,7 +41,7 @@ compilation schemas.
</li>
<li>
<paper old="true" file="papers/cduce-wp.ps.gz">
<paper old="" file="papers/cduce-wp.ps.gz">
<title>CDuce: a white paper</title>
<author>V. Benzaken</author>
<author>G. Castagna</author>
......
......@@ -13,19 +13,20 @@ using H = "xhtml"
(** Input types **)
type Page = <page name=String new=?Any>[ <title>String <banner>[InlineText*]? Item* ]
type Page = <page name=String new=?"">[ <title>String <banner>[InlineText*]? Item* ]
type External = <external {|href=String; title=String; name=String |}>[]
type Item =
<box noindex=?String title=String link=String>Content
| <meta>Content
| <left>Content
| <footnotes>[]
| Page
| External
type Author = <author>String
type Paper =
<paper file=?String old=?String>[
<paper file=?String old=?"">[
<title>String Author+ <comment>[InlineText*] <abstract>Content ]
type Slides =
......@@ -36,19 +37,20 @@ type Link =
type Content =
[ ( <p {|style=?String|}>[InlineText*]
| <ul {||}>[<li {||}>Content +]
| <ul {||}>[<li {||}>Content *]
| <section title=String>Content
| <sample highlight=?"true"|"false">String
| <xmlsample highlight=?"true"|"false">String
| <sessionsample highlight=?"true"|"false">String
| H:Xtable
| Paper | Slides | Link
| <boxes-toc sections=?"">[] (* the presence optional "section" attr produces *)
| <pages-toc sections=?"">[] (* a two-level depth toc to include also sections *)
| <boxes-toc sections=?"">[] (* the optional "section" produces *)
| <pages-toc sections=?"">[] (* a two-level toc *)
| <site-toc>[]
| <local-links href=String>[]
| <two-columns>[ <left>Content <right>Content ]
| <note> Content
| <footnotes>[]
| InlineText
)* ]
......@@ -101,13 +103,13 @@ type Tree = { name = String; url = String; title = String;
children = [Tree*]; boxes = [H:Xul?] }
let url_of_name (String -> String)
"index" -> "/"
| "index" -> "/"
| s -> s @ ".html"
let authors ([Author+] -> String)
| [ <author>a ] -> a
| [ <author>a1 <author>a2 ] -> a1 @ ", and " @ a2
| [ <author>a; rem ] -> a @ ", " @ authors rem
| [ <author>a ] -> a
| [ <author>a1 <author>a2 ] -> a1 @ ", and " @ a2
| [ <author>a; rem ] -> a @ ", " @ authors rem
let find_local_link (sitemap : [Tree*], l : String) : Tree =
match sitemap with
......@@ -126,32 +128,33 @@ let local_link (sitemap : Tree, l : String, txt : String) : H:Inline =
with `Not_found -> raise [ 'Local link not found: ' !l ]
let compute_sitemap ((Page|External) -> Tree)
<page name=name>[ <title>title (c::(Page|External) | _)* ] & p ->
| <page name=name>[ <title>title (c::(Page|External) | _)* ] & p ->
let children = map c with p -> compute_sitemap p in
{ name = name; url = (url_of_name name); title = title;
children = children; boxes = (boxes_of p) }
|<external name=name href=h title=t>[] ->
| <external name=name href=h title=t>[] ->
{ name = name; url = h; title = t; children = []; boxes = [] }
let ul([H:Xli*] -> [H:Xul?]) [] -> [] | l -> [ <ul>l ]
let display_sitemap (h : Tree) : H:Xli =
let ch = map h . children with x -> display_sitemap x in
let ch = match ch with [] -> [] | l -> [ <ul>l ] in
<li>[ <a href=(h . url)>[ '[' !(h . title) ']' ] !(h . boxes); ch ]
<li>[ <a href=(h . url)>[ '[' !(h . title) ']' ] !(h . boxes); (ul ch) ]
let boxes_of (Page -> [H:Xul?])
<page name=n>[ (items::Item | _)*] ->
let toc =
transform items with
| <box noindex=_>_ -> []
| <box title=t link=l>_ -> [ <li>[ <a href=((url_of_name n)@('#',l))>t ] ] in
(match toc with [] -> [] | lis -> [ <ul>lis ])
let link_to (Page -> H:Xa)
<page name=n new=_>[<title>t ; _ ] ->
<a href=(url_of_name n)>[!t
<img src="img/new.gif" alt="(new)" style="border:0">[]]
| <page name=n>[<title>t ; _ ] -> <a href=(url_of_name n)>t
let boxes_of (Page -> [H:Xul?])
<page name=n>[ (items::Item | _)*] ->
let toc = transform items with
| <box noindex="">_ -> []
| <box title=t link=l>_ -> [ <li>[ <a href=[ !(url_of_name n) '#' !l ]>t ] ]
in
ul toc
let link_to (<page name=n>[<title>t ; _ ] & p : Page) : H:Xa =
let t = match p with
| <_ new="">_ -> t @ [ <img src="img/new.gif" alt="(new)" style="border:0">[]]
| _ -> t in
<a href=(url_of_name n)>t
let box (x : H:Flow) : H:Block =
<table cellpadding="2"
......@@ -179,36 +182,14 @@ a:link:hover, a:visited:hover {
background: #FFFFD0;
color: #FF0000;
}
a.old, a.old:hover, a.old:visited:hover {
text-decoration: line-through;
}
p {
text-align: justify;
margin: 1ex 1em 0 1em;
}
pre {
margin: 1ex 1em 0 1em;
}
strong.ocaml{
color: #333b8e;
}
strong.highlight {
color: #FF0000;
}
img.icon {
border: 0;
}
div.code {
background: #E0E0E0;
margin: 0.5ex 0.5em 0 0.5em;
padding: 0.2ex;
}
div.xmlcode {
background: #ebefa2;
margin: 0.5ex 0.5em 0 0.5em;
padding: 0.2ex;
}
a.old, a.old:hover, a.old:visited:hover { text-decoration: line-through; }
p { text-align: justify; margin: 1ex 1em 0 1em; }
pre { margin: 1ex 1em 0 1em; }
strong.ocaml{ color: #333b8e; }
strong.highlight { color: #FF0000; }
img.icon { border: 0; }
div.code { background: #E0E0E0; margin: 0.5ex 0.5em 0 0.5em; padding: 0.2ex; }
div.xmlcode { background:#ebefa2; margin: 0.5ex 0.5em 0 0.5em; padding: 0.2ex;}
div.abstract {
font: bold helvetica;
......@@ -225,7 +206,6 @@ div.note {
background: #D0E2D2;
}
div.session
{
font: bold 80% helvetica;
......@@ -234,19 +214,19 @@ div.session
border: solid .5px grey;
}
div.abstract p {
font: sans-serif;
}
div.abstract p { font: sans-serif; }
"
type PageO = Page | []
(* Main transformation function *)
(* returns the last page of the descendance *)
let gen_page (prev : Page|[], page : Page, next : Page|[],
path : Path, sitemap : Tree) : (Page|[]) =
match page with
let gen_page (prev : PageO, page : Page, next : PageO,
path : Path, sitemap : Tree) : PageO =
match page with
<page name=name>[
<title>title <banner>banner | <title>(title & banner); items ] ->
<title>title <banner>banner | <title>(title & banner); items ] ->
let footnote_counter = ref Int 0 in
let footnotes = ref H:Flow [] in
......@@ -256,7 +236,6 @@ match page with
| <code>x -> [ <b>[ <tt>(highlight x) ] ]
| <local href=l>txt -> [ (local_link (sitemap,l,txt)) ]
| <(tag & (`b|`i|`tt|`em)) (attr)>x -> [ <(tag) (attr)>(text x) ]
(* | <a href=url>_ & z -> let [] = print [ 'Link: ' !url '\n'] in [z] *)
| <footnote>c ->
footnote_counter := !footnote_counter + 1;
let n = string_of !footnote_counter in
......@@ -277,7 +256,7 @@ match page with
[ <p>[ <b style="color: #008000">title ] !(content c) ]
| <paper (r)>[ <title>tit aut::Author* <comment>com <abstract>ab ] ->
[ (match r with
| { file = f; old = "true" } -> <a class="old" href=f>tit
| { file = f; old = "" } -> <a class="old" href=f>tit
| { file = f } -> <a href=f>tit
| _ -> <b>tit) '. '
!(authors aut) '. '
......@@ -301,40 +280,41 @@ match page with
| <link url=url title=title>com ->
[ <a href=url>title '. ' !(text com) ]
| <ul>lis ->
[ <ul>(map lis with <li>x -> <li>(content x)) ]
ul (map lis with <li>x -> <li>(content x))
| H:Xtable & x ->
[ x ]
| <p (attr)>x -> [ <p (attr)>(text x) ]
| <pages-toc (a)>[] ->
let toc =
transform items with
| Page & p -> [ <li>[ (link_to p)
!(match a with {|sections=_|} -> (boxes_of p) | _ -> [])] ]
| <external href=l title=t>[] -> [ <li>[ <a href=l>t ] ] in
(match toc with [] -> [] | lis -> [ <ul>lis ])
let toc = transform items with
| Page & p ->
let sects = match a with {|sections=_|} -> boxes_of p | _ -> [] in
[ <li>[ (link_to p) ; sects ] ]
| <external href=l title=t>[] -> [ <li>[ <a href=l>t ] ] in
ul toc
| <boxes-toc (a)>[] ->
let toc =
transform items with
| <box noindex=_>_ -> []
| <box title=t link=l>b -> [ <li>[ <a href=('#',l)>t
!(match a with
| {|sections=_|} ->
(transform b with <section title=t>_ -> [<br>[] '-' !t])
| _ ->[])]]
in (match toc with [] -> [] | lis -> [ <ul>lis ])
let toc = transform items with
| <box noindex=_>_ -> []
| <box title=t link=l>b ->
let sects = match a with
| {|sections=_|} ->
(transform b with <section title=t>_ -> [<br>[] '-' !t])
| _ -> [] in
[ <li>[ <a href=('#',l)>t !sects ]] in
ul toc
| <site-toc>[] ->
[ <ul>[ (display_sitemap sitemap) ] ]
| <local-links href=s>[] ->
(match (split_comma s) with
| [] -> []
| l -> let l = map l with x -> <li>[ (local_link(sitemap,x,"")) ]
in [ <ul>l ])
ul (map (split_comma s) with x -> <li>[ (local_link(sitemap,x,"")) ])
| <two-columns>[ <left>x <right>y ] ->
[ <table width="100%">[
<tr>[
<td valign="top">(content x)
<td valign="top">(content y) ] ] ]
| <note> c -> [ <div class="note">[ <b>"Note: " !(content c) ]]
| <note>c -> [ <div class="note">[ <b>"Note: " !(content c) ]]
| <footnotes>[] ->
(match !footnotes with
| [] -> []
| n -> footnotes := []; [ <br>[] (meta n) ] )
| t -> text [ t ]
in
......@@ -379,6 +359,10 @@ match page with
(* Preparing main panel *)
let main = transform items with
| <box (r)>c -> [ (box_title (content c, r . link, r . title)) ]
| <footnotes>[] ->
(match !footnotes with
| [] -> []
| n -> footnotes := []; [ (meta n) ] )
| <meta>c -> [ (meta (content c)) ]
in
let notes = match !footnotes with
......@@ -429,8 +413,8 @@ text-align:center; color: #aa0000; font: bold 200% helvetica" >
let gen_page_seq
(prev : Page|[], pages : [Page*], next : Page|[],
path : Path, sitemap : Tree) : (Page|[], Page|[]) =
(prev : PageO, pages : [Page*], next : PageO,
path : Path, sitemap : Tree) : (PageO, PageO) =
match pages with
| [ p1 p2 ; _ ] & [ _; rest ] ->
let last = gen_page (prev,p1,p2, path, sitemap) in
......
......@@ -5,6 +5,8 @@
<left>
<p>This page lists all the pages from CDuce website.</p>
<p>See also:</p>
<local-links href="index"/>
</left>
<box title="Sitemap" link="sitemap">
......
......@@ -6,7 +6,7 @@
<left>
<boxes-toc/>
<p>See also:</p>
<local-links href="index,proto"/>
<local-links href="index,img,sitemap"/>
</left>
<box title="CDuce @ ENS (Paris)" link="ens">
......@@ -15,35 +15,35 @@
<li>
<a href="http://www.di.ens.fr/~castagna/">
Giuseppe Castagna
</a> (CNRS researcher)
</a> (CNRS researcher): <i>project leader</i>.
</li>
<li>
<a href="http://www.eleves.ens.fr/home/frisch/">
Alain Frisch
</a> (Ph.D. student)
</a> (Ph.D. student): <i>project leader, main developer</i>.
</li>
<li>
<a href="http://www.lri.fr/~miachon/">
Cdric Miachon</a> (Ph.D. student)
Cdric Miachon</a> (Ph.D. student): <i>query langage for CDuce</i>.
</li>
<li>
<a href="http://bononia.it/zack">
Stefano Zacchiroli
</a> (Graduate student)
Kim Nguyen
(DEA student): <i>extensions of the pattern algebra</i>.
</li>
<li>
<a href="http://www.eleves.ens.fr/home/delatail/">
Josh de Letaillade
</a> (former intern)
<a href="http://bononia.it/zack">
Stefano Zacchiroli
</a> (former intern): <i>support for XML Schema</i>.
</li>
<li>
<a href="http://www.ie2.u-psud.fr/~jdemouth">
Julien Demouth
</a> (intern).
</a> (intern): <i>interface with OCaml</i>.
</li>
<li>
Kim Nguyen
(DEA student)
<a href="http://www.eleves.ens.fr/home/delatail/">
Josh de Letaillade
</a> (former intern).
</li>
</ul>
</box>
......@@ -54,12 +54,12 @@
<li>
<a href="http://www.lri.fr/~benzaken/">
Vronique Benzaken
</a> (Prof. Univ. Paris 11)
</a> (Prof. Univ. Paris 11): <i>project leader</i>.
</li>
<li>
<a href="http://www.lri.fr/~burelle/">
Marwan Burelle
</a> (Ph.D student)
</a> (Ph.D student): <i>information flow and security analysis</i>.
</li>
</ul>
......@@ -77,9 +77,12 @@
</li>
</ul>
</box>
<box title="Pictures" link="pic">
<p>
Do you want to see <local href="img">what we look like</local> ?
</p>
</box>
</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