Um eine Taxonomie zu erstellen, müssen Sie sich zunächst einige Fragen stellen:
- Sind Objekte, die ich in welche Beziehungen stecke, richtig definiert?
- Wenn ja, existieren sie tatsächlich?
- Beschränke ich mich nur auf eine bestimmte Art von Beziehungen zwischen Objekten, oder gibt es eine bestimmte Anforderung, dass das System nur legitime Beziehungen verwendet?
Wenn Sie eine Frage wie die von Ihnen gestellte hören, gehen Sie in der Regel von mehreren Annahmen aus. Zum Beispiel ist es selbstverständlich anzunehmen, dass alle diese Sprachen eine Hierarchie unter einem allgemeineren Sprachbegriff bilden müssen, oder dass sie den Raum aller Sprachen aufteilen oder dass sie Teilmengen voneinander sind.
Programmiersprachen
Leider scheint keine der obigen Aussagen zu stimmen. Vielleicht haben nur die Programmiersprachen eine Definition, über die sich die meisten einig sind. Programmiersprachen sind Sprachen, die Programme codieren. Codierung bedeutet, dass ein Wort in der Sprache als Programm interpretiert werden kann (eine Abfolge von Aktionen). Computerprogrammiersprachen sind eine Teilmenge davon. Beispiele für Nicht-Computer-Programmiersprachen: eine Einkaufsliste, die als Anweisungen für einen Käufer in einem Supermarkt interpretiert wird, DNA, die durch Transkription von Peptiden interpretiert wird, eine analoge Musikaufzeichnung, die als Programm für ein Tonbandgerät dient.
Computerprogrammiersprachen sind also diejenigen, die Computer programmieren.
Skriptsprachen
Sind nicht gut definiert. Es ist offen zu interpretieren, was dieser Begriff bedeutet. Historisch gesehen scheint es, dass Programmiersprachen, die keinen Compiler zur Erzeugung von Maschinencode hatten, so genannt wurden. Nach heutigen Maßstäben würde dies jede beliebte Programmiersprache ohne Assembler in diese Kategorie einordnen. Selbst die sogenannten Low-Level-Sprachen wie C benötigen eine Laufzeit mit bereits vorhandenen Prozeduren, so dass die durch das Kompilieren eines C-Programms erhaltenen Binärdateien nicht nur Maschinencode sind, sondern auch ab und zu die Laufzeit aufrufen.
Auszeichnungssprachen
Sind nicht gut definiert. Wann immer der Begriff verwendet wird, scheint es die Absicht zu sein, eine Programmiersprache mit sehr begrenztem Lexikon zu beschreiben, die hauptsächlich zur Erzeugung von visuellen oder akustischen Bildern verwendet wird. Es mag schwierig sein, XML als Programmierelement anzusehen, aber wenn Sie sich Man- oder TexInfo-Markups ansehen, werden Sie feststellen, dass die "Sonderzeichen" tatsächlich Anweisungen des Interpreters sind.
Es ist auch möglich, eine "Programmier" -Interpretation für die XML-Sprache zu geben. Dies könnte folgendermaßen aussehen:
< := put interpreter in the reading node mode
! := if reading node, start CData/Comment mode
else if not in read text mode, signal error
-- := if in start CData/Comment mode, start comment
else if in comment, put in end comment mode
else if in end comment mode, signal error
...
Fazit: Diese heutige Unterteilung scheint nicht sehr aussagekräftig zu sein. Sie kann Ihnen nur eine Vorstellung davon geben, mit welcher Art von Sprache Sie konfrontiert sind, liefert Ihnen jedoch keine strenge Definition.