1. Einführung
[ XML und Haskell Seminar ]
... [ Thema XML Verarbeitung mit Haskell ]
... [ 2. Funktionale Programmierung ]
XML (Extensible Markup Language) ist eine Auszeichnungssprache (Markup
Language) für strukturierte Dokumente und dient der sequentiellen
Speicherung und Übermittlung strukturierter Daten.
Ein Grundbaustein einer Software zur Verarbeitung von XML-Dokumenten
ist ein XML-Parser. Der Parser liest ein Dokument in XML-Syntax ein
und stellt es als Dokumentbaum der eigentlich verarbeitenden Anwendung
zur Verfügung. Das XML-Dokument wird also von einer sequentiellen
Darstellung in eine hierachische Darstellung (Baum) überführt.
Die Verarbeitung von XML-Dokumenten wird dann im wesentlichen die
Manipulation baumartiger Datenstrukturen sein.
Für die Implementierungssprache eines solchen Parsers wird folglich
eine Sprache benötigt,
die die Verarbeitung von baumstrukturierten Daten gut unterstützt.
Funktionale Programmiersprachen wie Haskell unterstützen Bäume als
Basis-Daten-typen und bieten Konzepte wie benutzerdefinierte
Datentypen und Pattern-Matching, und sind daher besonders gut für die
Implementierung von Dokumentverarbeitungssysteme geeignet.
Funktionale Programmiersprachen haben leider nicht den besten Ruf und
gelten oft als reine Experimentiersprachen, die nur für die Forschung
und Ausbildung bestimmt sind. Des weiteren hält die Meinung an, dass
sie ineffizient und ungeeignet für die Realisierung grösserer
Anwendungen sind. Auch Haskell kann sich diesem Vorurteil nur bedingt
entziehen, denn das I/O Handling gehört nicht zu den effizientesten.
Dennoch stehen funktionale Lösungen den imperativen (z.B. Java) mit
nichts nach. Gerade bei der eigentlichen Verarbeitung, der
Manipulation der Baumstrukturen, zeigt sich ihre Stärke deutlich.
Eine der wichtigsten Aufgaben ist die Lokalisierung von
Teildokumenten, die eine angegebene Strukturbedingung erfüllen und in
einem bestimmten Kontext stehen.
XML stellt Daten als Bäume dar. Baum-Knoten werden hierbei als
Elemente bezeichnet und sind ggf. durch Attribute annotiert. Auch
Textelemente sind möglich. Durch Document Type Definitions (DTDs)
lässt sich die Struktur von XML-Dokumenten beschreiben.
Im Vergleich zu C, C++ oder Java ist das Haskell-Typ-System sehr streng.
Allgemein wird das Haskell-Typ-System als gut verständlich, gut
dokumentiert und gut implementiert bezeichnet. Diese Attribute lassen
es Ideal erscheinen einen verständlichen Haskell Datentyp zu
entwickeln, welcher der XML Baumstruktur gerecht wird.
[ XML und Haskell Seminar ]
... [ Thema XML Verarbeitung mit Haskell ]
... [ 2. Funktionale Programmierung ]