HTML ist eine Programmiersprache

von René Meyer, Januar 2004

Es ist seit Jahren heftig umstritten, ob HTML eine Programmiersprache ist. Mittlerweile gibt es sogar Streitschriften, die das heftig verneinen. Im Gegensatz dazu argumentiert dieser Text, weshalb HTML den Programmiersprachen zuzurechnen ist.

HTML unterscheidet sich in seinen Fähigkeiten stark von anderen Programmiersprachen. Wurde sie doch nur zu einem Zweck entworfen: dem Darstellen von Dokumenten. Man kann mit HTML keine Schleifen ausführen, nichts zählen und schon gar keine mathematischen Berechnungen durchführen. Das alles veranlaßt viele zu der Aussage: HTML ist keine Programmiersprache. Dabei nimmt jeder seine eigenen Maßstäbe für Begründungen. Doch für eine objektive Beurteilung müssen wir uns an objektive Quellen halten.

Um zu prüfen, ob HTML eine Programmiersprache, ob eine HTML-Seite ein Programm ist, müssen wir Definitionen für "Programmiersprache" und "Programm" finden, die normativen Charakter haben, und überlegen, ob sie erfüllt werden.

Informatik-Duden und nahezu mit gleichem Wortlaut die Brockhaus-Enzyklopädie:

Programmiersprache
Sprache zur Formulierung von Rechenvorschriften, z.B. von Datenstrukturen und Algorithmen, die von einem Computer ausgeführt werden können

Programm
Formulierung eines Algorithmus und der zugehörigen Datenbereiche in einer Programmiersprache

DIN 44300 (Informationsverarbeitung; Begriffe, Datenstrukturen):

Programm
Nach den Regeln der verwendeten Sprache festgelegte syntaktische Einheit aus Anweisen und Vereinbarungen, welche die zur Lösung einer Aufgabe notwendigen Elemente umfaßt

ISO:

Programming Language
An artificial language for expressing programs.

Program
A syntactic unit that conforms to the rules of a particular programming language and that is composed of declarations and statements or instructions needed to solve a certain function, task, or problem.

Declaration
An explicit language construct that introduces one or more identifiers into a program and specifies how these identifiers are to be interpreted. Examples - Declarations of data types, storage organization, packages, or tasks.

Statement
An explicitly terminated syntactic unit either representing a declaration or prescribing a unit of work that includes identification of actions to be performed, operands (if any) to be used in performing these actions, and disposition of any results.

Ist eine HTML-Seite eine Verarbeitungsvorschrift, die von einem Computer ausgeführt werden kann? Ja. HTML ist eine künstliche Sprache mit einem festgelegten Satz an eindeutigen Anweisungen für einen Computer. Der HTML-Code sagt dem Computer, wie eine Seite dargestellt werden soll, präzise und eindeutig. Egal, wie oft der Browser die gleiche Seite anzeigt - er wird es immer auf dieselbe Weise tun. Er wird sie Zeile für Zeile auslesen und abarbeiten.

Ein HTML-Dokument ist eine Vorschrift, wie eine Seite dargestellt werden soll. Eine HTML-Seite ist ein Programm.

HTML unterscheidet sich von anderen Programmiersprachen. Doch die Definition für Programmiersprache ist so allgemein, daß HTML sie erfüllt.


Gegen-Argumente

HTML ist keine Programmier-, sondern eine Seiten/Dokumenten-Beschreibungssprache!

HTML wurde als Beschreibungssprache von Dokumenten entworfen. Dennoch erfüllt sie die Bedingungen für eine Programmiersprache.

Alle wichtigen Elemente einer Programmiersprache, etwa Schleifen oder die Möglichkeit der Berechnung, fehlen.

Das stimmt. Aber das sind keine notwendigen Voraussetzungen, um eine Programmiersprache zu sein.

Mit HTML kann man keine Aufgaben lösen!

Warum ist das formatierte Anzeigen von Text und Bildern keine Aufgabe?

Die HTML-Auszeichnungen (Tags) sind keine Befehle!

Was spricht dagegen, <b> als Befehl zu bezeichnen? Ob man es Marken, Tags oder Auszeichnungen nennt - der Computer wird angewiesen, den folgenden Text fett zu drucken. Er erhält einen Befehl. Aber die Frage ist ohnehin ohne Belang, da die Definition für Programmiersprache nicht von Befehlen, sondern von Vorschriften spricht.

Eine HTML-Seite ist kein selbständiges Programm, das ohne Hilfsmittel abläuft.

Stimmt. Viele Programmiersprachen brauchen einen solchen "Abarbeiter", einen Interpreter. Programme bleiben dieses Codes dennoch.

Der Text HTML ist keine Programmiersprache - Eine kleine Terminologie beschreibt deutlich, wieso HTML keine Programmiersprache ist.

Ich kenne den Text gut. Er enthält aber nur Behauptungen, ohne sie schlüssig zu belegen. Seine Argumentation stützt sich auf zwei Aussagen:

1. In HTML werden keine Aufgaben gelöst. Wieso nicht? Wieso ist das Anzeigen von Texten und Bildern keine "Aufgabe"?

2. HTML-Auszeichnungen sind keine Befehle. Wieso nicht? Sie geben an den Browser zwingend eine Anweisung, z.B. in Fettschrift umzuschalten oder einen Link zu generieren.