[an error occurred while processing this directive]

Erklärung zum Begriff "formale Sprache" in Zusammenhang mit XML. [] (XML "Programmiersprache"? Ist XML eine Programmiersprache? XML "programmieren"? Ist XML keine Programmiersprache? ), Lektion, Seite 721281
http://www.purl.org/stefan_ram/pub/xml_formale_sprache_de ist die kanonische URI dieser Seite.
Stefan Ram

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 seindeswegen 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.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Von der Stefan-Ram-Startseite ausgehend finden sich oft noch mehr Informationen zu Themen, die auf einer Seite angesprochen wurden. (Eine Verbindung zur Stefan-Ram-Startseite befindet sich ganz oben auf dieser Seite.)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. slrprd, PbclevtugFgrsnaEnz