Hm, irgendwie habe ich mich in meiner
Frage nicht ganz gut ausgedrückt, denn
ich kenne schon einige
Programmiersprachen (C, C++, PASCAL,
BASIC, LabVIEW, …) aber ich suche nach
einer Definition der zu einer
Programmiersprache gehörenden
Syntaxelemente. Also z.B. dass Schleifen
vorhanden sein müssen o.ä. Also z.B. C
enthält jede Menge Elemente, die es z.B.
in HTML nicht gibt. Aber HTML ist auch
eine Form an einen Computer anweisungen
zu geben…
[…]
Ich glaube, Du wirfst da ein paar Sachen durcheinander. Zuerst einmal folgendes: Eine Sprache (für Computer) wird immer durch eine Grammatik (sprich die Syntax) und durch die Bedeutung gewisser Konstrukte (sprich die Semantik) definiert.
Die Grammatik kann man in Backus-Naur-Form (kurz BNF) angeben, die eine bestimmte Art und Weise darstellt Grammatiken aufzuschreiben und mit der man 1) alle gültigen Terme der Grammatik erzeugen kann und 2) einen Term auf Gültigkeit (z.B. ist dies ein gültiges C-Statement oder ist es ein Syntax-Fehler) abprüfen kann.
Die Semantik beschreibt nun, was ein gültiger Term bedeutet.
Für HTML ist dies die Darstellung von z.B. Fett.
In C bedeutet i++ den Inhalt der Variablen i holen und diesen um eins erhöhen. Man kann die Bedeutung jedoch sehr genau durch mathematische Terme (z.B. Prädikatenlogik) beschreiben, wenn man ein Modell (uff, schon wieder ein mathematischer Begriff
) hat, in dem man einen Term interpretieren möchte.
Für die Definition einer Programmiersprache , d.h. also die Erweiterungen was ich hier als Sprache dargestellt habe, dafür hat Tanja Schaettler (wie ich finde) eine sehr gute Definition gegeben.
Was ich sehr lustig finde, ist die Tatsache, daß schon kleinste prädikatenlogische Terme demnach einen Teil einer Programmiersprache sind.
Aber das wird wohl auch für alle Sprache gelten, mit denen man Algorithmen beschreiben kann.
MfG Frank