| The topic of this article may not meet Wikipedia's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted. Find sources: "CDuce" – news · newspapers · books · scholar · JSTOR (August 2018) (Learn how and when to remove this template message) |
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 can be used for general-purpose programming.
CDuce conforms to basic standards: Unicode, XML, DTD, Namespaces are fully supported, XML Schema is partially supported.
Benefits of CDuce
- static verifications (e.g.: ensure that a transformation produces a valid document);
- 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).
- complete integration with OCaml (OCaml libraries can be straightforwardly imported and CDuce programs can be exported to OCaml).
- integration with Ocsigen via the OcCDuce module
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;
- a highly-effective type-driven compilation schema.
By: Wikipedia.org
Edited: 2021-06-18 18:12:18
Source: Wikipedia.org