CDuce

CDuce ist eine funktionale Programmiersprache, die auf der Sprache XDuce aufbaut. Dabei ist CDuce eine anwendungsspezifische Sprache zur Verarbeitung von XML-Dokumenten und in eine Ebene mit XQuery, XLST oder YATL einzuordnen. Eine zentrale Stellung innerhalb von CDuce haben XML-Typen. Weiterhin zählen Funktionen höherer Ordnung, Pattern-Matching sowie ein umfangreiches Typsystem zu den Eigenschaften von CDuce. Während XDuce nur im Zusammenhang mit XML-Dokumenten verwendet werden kann, ist CDuce hingegen eine auf die universelle Verwendung hin konzipierte Sprache, die eben nicht nur die Transformation von XML-Dokumenten unterstützt. Dazu sind statische Typisierung und ergänzende Sprachelemente in CDuce integriert worden, zudem ist CDuce aufgrund von Benchmarks der Entwickler deutlich performanter als vergleichbare Sprachen zur Manipulation von XML-Dokumenten.

Die Entwicklung von CDuce basiert auf den Arbeiten des Centre National de la Recherche Scientifique (CNRS) und des Institut National de Recherche en Informatique et en Automatique (INRIA) in Frankreich, die auch weiterhin fortgeführt wird. CDuce unterstützt die Basis-Standards wie Unicode, XML, Document Type Definition ( DTD) sowie Namensbereiche jedoch XML-Schema nur eingeschränkt.

Bereits die Motivation von XDuce war es, die dynamische Validierung von XML-Dokumenten zu unterstützen. Ein neuer Ansatz wurde dabei mit der statischen Typvalidierung und der Validierung während der Compile-Time eingeführt. Die "Statische Typvalidierung" bedeutet, dass ungültige Datentypen - also eben solche, die dem jeweiligen Dokumenttyp nicht entsprechen - beim Einlesen mit Hilfe von CDuce erkannt und abgelehnt werden. Somit ist es auch nicht möglich, ungültige XML- Dokumente zu erzeugen, da deren Verarbeitung schon bereits zuvor abgebrochen wurde. Die Syntax von CDuce ist der von XML ähnlich und erfordert dahingehend vor Verwendung einen entsprechenden Aufwand zur Orientierung.

Die Verarbeitung von XML-Daten in CDuce

Die für die Verarbeitung von XML- Daten in CDuce definierten Funktionen und Variablen sind statisch typisiert. Aufgrund dieser statischen Typisierung sind die Datentypen und auch die Struktur des XML-Dokuments während der Ausführung - der "Compile-Time" - bekannt, so dass auch eine effiziente Behandlung und Verarbeitung der Daten ermöglicht wird. Dabei baut das Typsystem von CDuce auf der Definition von Typen als Mengen von Werten auf, deren formaler Aufbau dem der Definition von Typen bei DTDs ähnlich ist. Konkret deklariert CDuce mit Large Integers, Characters, Floats und atomaren Typen vier Arten von skalaren Datentypen. So gehören in CDuce alle XML-Daten zu einem eigenen Datentyp. Dieses Konzept wird auch von der nicht so bekannten Sprache XMLambda angeboten. Andere Programmiersprachen in diesem Umfeld bilden XML-Daten überwiegend auf Nicht-XML-Typen ab.

Nachfolgend werden die weiteren Eigenschaften von der Sprache CDuce zusammengefasst:

  • XML- Objekte sind wie vollwertige Sprachobjekte (auch first- class-citizen genannt), bearbeitet werden beispielsweise Elemente, Sequenzen, Tags, Zeichen und Zeichenketten sowie Mengen von Attributen. Bestimmte Folgen dieser XML-Elemente können als reguläre Ausdrücke spezifiziert werden, die auch für Zeichenketten gelten.
  • Funktionen sind sogenannte "first-class-values", die bearbeitet, in Datenstrukturen gespeichert oder von einer Funktion zurückgegeben werden können.
  • Pattern Matching ermöglicht komplexe Extraktionen aus Folgen von XML-Elementen.
  • Polymorphismus durch Subtyping und überladene Funktionen.
  • Eine Typ Algebra unterstützt rekursive Typen sowie boolesche Operationen zur Deklarierung von Datenstrukturen.
  • Funktionen höherer Ordnung, wobei eine zweite Funktion als Ergebnis oder Parameter einer Funktion definiert werden kann.

Aufgrund von Benchmarking auf Basis des in der Programmiersprache C entworfenen XLST Prozessors xsltproc soll CDuce im Vergleich performanter als XSLT sein. Bemerkenswert ist das deshalb, weil XLST eine untypisierte Sprache zur Transformation von XML-Dokumenten ist und hingegen CDuce zunächst ein eigenes und aufwendiges Typ-Checking in gleicher Anwendung realisiert. Die möglichen Anwendungsgebiete von CDuce sind die Verknüpfung von XML-Programmen in Form von CDuce-Adaperscripten, Anwendungen im Web und im Zusammenhang mit Web-Diensten.

Informationen zum Artikel
Deutsch: CDuce
Englisch:
Veröffentlicht: 09.11.2013
Wörter: 598
Tags: Sonstige Progr.
Links: Programmiersprache, Sprache, XML-Format, XML query language (XQuery), Ordnung
Übersetzung: EN
Sharing: