CDuce
From Wikipedia, the free encyclopedia
CDuce is an XML-oriented functional language, which extends XDuce in a few directions. It features XML regular expression types, XML regular expression patterns, XML iterators. CDuce is not strictly speaking an XML transformation language since it also has general purpose features such as higher-order functions.
CDuce conforms to basic standards: Unicode, XML, DTD, Namespaces are fully supported, XML Schema is partially supported.
[edit] Benefits of CDuce
- static verifications (e.g.: ensure that a transformation produces a valid document);
- in particular, we aim at smooth and safe compositions of XML transformations, and incremental programming;
- static optimizations and efficient execution model (knowing the type of a document is crucial to extract information efficiently).
[edit] Features particular to CDuce
- XML objects can be manipulated as first-class citizen values: elements, sequences, tags, characters and strings, attribute sets; sequences of XML elements can be specified by regular expressions, which also apply to characters strings;
- functions themselves are first-class values, they can be manipulated, stored in data structure, returned by a function,...
- a powerful pattern matching operation can perform complex extractions from sequences of XML elements;
- a rich type algebra, with recursive types and arbitrary boolean combinations (union, intersection, complement) allows precise definitions of data structures and XML types; general purpose types and types constructors are taken seriously (products, extensible records, arbitrary precision integers with interval constraints, Unicode characters);
- polymorphism through a natural notion of subtyping, and overloaded functions with dynamic dispatch;
- an highly-effective type-driven compilation schema.