XML als formale Sprache
Menschen notieren Informationen mit Hilfe einer bestimmten Sprache.
Eine Sprache, die Menschen im Alltag zur Kommunikation untereinander verwenden, nennt man eine natürliche Sprache. Deutsch, Englisch oder Französisch sind Beispiele einer natürlichen Sprache. Natürliche Sprachen sind nicht durch eine Spezifikation, sondern durch ihren Gebrauch definiert und unterliegen ständigem Wandel. Ob eine Äußerung ein Satz einer bestimmten natürlichen Sprache ist, kann nicht immer zweifelsfrei bestimmt werden.
Ist Eindeutigkeit der Kommunikation gewünscht, so wird eine formale Sprache definiert. Es ist durch eine formale Grammatik (Syntax) genau definiert, ob ein bestimmter Text zu einer bestimmten formalen Sprache gehört oder nicht. Insofern ist eine formale Sprache die genau definierte unveränderliche Menge aller Texte, die zu der Sprache gehören (in Fachsprache: aller terminalen Darstellungen des Startsymbols).
XML ist ein syntaktischer Rahmen für formalen Sprache.
Der Rahmen XML wird durch eine „Empfehlung“ des Web-Konsortiums festgelegt. Die Empfehlung XML erlaubt die Niederschrift von Informationen, wie beispielsweise Schriftwerken als XML-Dokument. Das Wort „Dokument“ ist hier zwar möglicherweise ein Anglizismus, da es sich im allgemeinen nicht um Dokumente in dem Sinne einer Urkunden oder eines Belege handelt, aber der Begriff ist dafür so weit verbreitet, daß andere Begriffe irritierend wären. Das englische Wort “document ” wird in der Syntax-Spezifikation von XML 1.0 verwendet.
An einigen Stellen eines XML -Dokumentes können fast beliebige Texte eingefügt werden, also auch Texte einer natürlichen Sprache (die formal gesehen allerdings dabei Teil der formalen Sprache werden) oder einer anderen formalen Sprache. Dadurch ist es möglich, XML zu verwenden, um eine Mitteilung einer natürlichen Sprache wiederzugeben, über diese Aussagen zu treffen und diese in bestimmter Weise zu kennzeichnen oder zu strukturieren.
Allerdings ist XML nicht einfach nur eine bestimmte formale Sprache, sondern vielmehr ein Rahmen zur Definition formaler Sprachen, der XML-Anwendungen. Solch eine XML -Anwendung kann auch eine Programmiersprache sein—deswegen ist XML selber aber noch keine Programmiersprache. Eine XML -Anwendung ist im allgemeinen eine formale Sprache, deren Grammatik sich in einem durch die XML -Empfehlung vorgegebenen Rahmen befindet.
Ist XML eine Programmiersprache?
Manchmal wird XML, HTML oder XHTML als eine „Programmiersprache“ bezeichnet. Wenn die einzigen einem Sprecher bekannten formalen Sprachen Programmiersprachen sind, und ihm gleichzeitig der Oberbegriff der „formalen Sprache“ unbekannt ist, dann wird er den ihm bekannten Begriff der Programmiersprache übergeneralisieren (übermäßig verallgemeinern) und alle formalen Sprachen als „Programmiersprachen“ bezeichnen. Das kann man mit einem Kinde vergleichen, dem als Tiere bisher nur Hunde bekannt sind. Wenn es nun ein Pferd sieht und den Oberbegriff „Tier“ noch nicht kennt, dann wird es auch das Pferd als „Hund“ bezeichnen. Als Trope nennt man solch eine Verwendung auch Synekdoche (gr., „Mitverstehen“), wie z.B. „sein Brot verdienen“ für „seinen Lebensunterhalt verdienen“. In technischen Texten wird man die Verwendung des Begriffs „Programmiersprache“ für XML, HTML oder XHTML jedoch weniger als Trope verstehen, sondern eher als falsch ansehen, da es sich bei diesen formalen Sprachen nach einer weitverbreiteten Ansicht nicht um Programmiersprachen handelt.
Ein Programm ist nach DIN 44 300 eine syntaktische Einheit aus Anweisungen und Vereinbarungen. Seine Semantik ist im wesentlichen aktionsorientiert, da eine Anweisung eine Aktionsvorschrift ist. Ein XML -Dokument ist aber im allgemeinen kein Programm und seine Semantik ist zunächst vorwiegend denotativ (operationale Aspekte spielen nur eine untergeordnete Rolle). Daher klingt es für Sachverständige falsch, wenn jemand Begriffe, wie „XML programmieren“ oder „Webseiten programmieren“ verwendet. Diese Begriffe können aber vielleicht dann sinnvoll sein, wenn wirklich die Programmierung von Software gemeint ist, die XML oder Webseiten erzeugt. Meistens ist es jedoch die manuelle Herstellung gemeint und dann ist es besser von „XML schreiben“ oder „Webseiten erstellen“ zu sprechen.
XML ist nach herrschender Ansicht keine Programmiersprache.
Es gibt einige Anwendungen von XML, mit denen tatsächlich Programme in XML geschrieben werden können. Relativ bekannt ist XSLT, das aber weniger eine aktionsorientierte als eher eine denotative Semantik hat. Es sind aber aktionsorientierte (imperative) Programme denkbar, die mit einer XML -Anwendung geschrieben werden. Die Programmiersprache ist dann aber die XML -Anwendung und nicht XML selber.
In XML gibt es allerdings Verarbeitungsanweisungen (processing instructions ), die man als Anweisungen ansehen kann, sie spielen jedoch eine untergeordnete Rolle und führen deswegen nicht dazu, daß XML ihretwegen als Programmiersprache angesehen wird.
Schließlich gibt es auch unter Informatik-Professoren tolerantere Auslegungen der Bedeutung des Verbs „programmieren“, nach denen bereits jede Art einer vorausplanenden Gestaltung schon Programmierung ist. In diesem Sinne könnte man dann auch XML als eine Programmiersprache ansehen. Daher kann man es nicht als vollkommen falsch ansehen, wenn jemand XML so bezeichnet.