CDuce

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.
gollark: It's not new, it's field-tested on the esolangs server.
gollark: 🇧 🇱 🇦 🇲 🇪 🇩 🇮 🇸 🇨 🇴 🇷 🇩
gollark: 🇮 🇭 🇦 🇻 🇪 🇦 🇵 🇷 🇴 🇬 🇷 🇦 🇲 🇼 🇭 🇮 🇨 🇭 🇨 🇴 🇳 🇻 🇪 🇷 🇹 🇸 🇹 🇪 🇽 🇹 🇹 🇴 🇪 🇶 🇺 🇮 🇻 🇦 🇱 🇪 🇳 🇹 🇷 🇪 🇬 🇮 🇴 🇳 🇦 🇱 🇮 🇳 🇩 🇮 🇨 🇦 🇹 🇴 🇷 🇪 🇲 🇴 🇯 🇮 🇸 ...
gollark: 🇸 🇴 🇬 🇱 🇦 🇩 🇮 🇦 🇺 🇹 🇴 🇲 🇦 🇹 🇪 🇩 🇹 🇭 🇪 🇵 🇷 🇴 🇨 🇪 🇸 🇸 🇴 🇫 🇲 🇦 🇰 🇮 🇳 🇬 🇹 🇭 🇮 🇸 🇧 🇮 🇬 🇹 🇪 🇽 🇹 ❗
gollark: 🇾 🇦 🇾
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.