# Was ist eine Programmiersprache? Genaue Definition



## Crysis nerd (7. Juni 2011)

Ich bin auf die Idee gekommen, dies mal zu fragen, als ich in dem Thread "Welche Programmiersprache benutz ihr" geguckt habe.
Eigentlich wollte ich sofort meckern, aber ich frag doch erstmal 

Also, Wo unterscheidet man Zwischen Scriptsprache und Programmiersprache und was is eig html?

Also, nach meinem jetzigen Wissen bzw meiner Einschätzung, würde ich sagen:

Programmiersprache - wird compiliert, ist linkbar (zu einer Datei, exe oder dll oder so) -> c/C++, C#
Scriptsprache - Wird interpretiert, liegt meist in Klartext vor -> Php, perl, MaxScript ()
anderes Zeugs - wird ebenfalls interpretiert, hat jedoch keine Programmabläufe (also keine ablaufregelnde Befehle) -> HTML

Und jetzt ist noch die frage: Muss man mit einer Programmiersprache ein Betriebsystem programmieren können, damit es eine ist? Falls ja, würde Java und C# rausfallen, weil die ja in "virtuellen umgebungen" arbeiten.
Was Delphi und Co ist, weiß ich nich..

Ma auf eure Meinung gespannt 

Lukas


----------



## Bauer87 (8. Juni 2011)

HTML ist (wie der Name schon sagt), eine Markup Language, sprich eine Sprache für die Textauszeichnung (Formatierung etc)http://dict.leo.org/ende?lp=ende&p=CqhggsWkAA&search=Textauszeichnung&trestr=0x8001.

Ob ein Betriebssystem programmiert werden kann, hängt nicht mit der Unterscheidung Programmier- /Scriptsprache zusammen. (Ein OS in Java gab es afaik sogar mal, und wenn der Prozessor es interpretieren könnte, wäre auch ein PHP-Betriebssystem möglich (ist halt Turing-vollständig) Theoretisch könnte man selbst als Exel-Makro  alles mögliche schreiben.


----------



## Supeq (8. Juni 2011)

Programmiersprache ist für mich der Oberbegriff für jedes Konzept, welches dazu dient, ohne Anwendung von Maschinensprache(Binärcode) Computersoftware zu produzieren. Dadurch wird es dem normalen Menschen (Wenn man Programmierer als normal bezeichnen darf ) erst möglich, Informationen vom Computern verarbeiten zu lassen.

Ja, selbst PHP,PERL und HTML zähle ich zu den Programmiersprachen, denn diese werden auch kompiliert. Sei es zur Laufzeit über einen Interpreter (PHP) oder über Umwege (HTML->Browser->Kernel->Hardware). Durch meine weitläufige Definition fallen sogar Worddokumente und Paintzeichnungen unter den Begriff "Programmiersprache", man muss nur auf der richtigen Metaebene denken.

Die Antwort auf die Frage, ob man mit einer PS ein OS programmieren können muss, damit sie eine ist, lautet also: nein!^^


----------



## Crysis nerd (8. Juni 2011)

Bauer87 schrieb:


> HTML ist (wie der Name schon sagt), eine Markup Language, sprich eine Sprache für die Textauszeichnung (Formatierung etc).
> 
> Ob ein Betriebssystem programmiert werden kann, hängt nicht mit der Unterscheidung Programmier- /Scriptsprache zusammen. (Ein OS in Java gab es afaik sogar mal, und wenn der Prozessor es interpretieren könnte, wäre auch ein PHP-Betriebssystem möglich (ist halt Turing-vollständig) Theoretisch könnte man selbst als Exel-Makro  alles mögliche schreiben.



Ich hab auch schon von einem C# OS gehört, aber für solche muss immer vorher ein entsprechender Interpreter bzw virtuelle Umgebung aufgebaut werden. Und ja klar, dann wäre es auch mit PHP möglich etc..
zwischenfrage: "Turing-vollständig"?




Supeq schrieb:


> Programmiersprache ist für mich der Oberbegriff für jedes Konzept, welches dazu dient, ohne Anwendung von Maschinensprache(Binärcode) Computersoftware zu produzieren. Dadurch wird es dem normalen Menschen (Wenn man Programmierer als normal bezeichnen darf ) erst möglich, Informationen vom Computern verarebeiten zu lassen.
> 
> Ja, selbst PHP,PERL und HTML zähle ich zu den Programmiersprachen, denn diese werden auch kompiliert. Sei es zur Laufzeit über einen Interpreter (PHP) oder über Umwege (HTML->Browser->Kernel->Hardware). Durch meine weitläufige Definition fallen sogar Worddokumente und Paintzeichnungen unter den Begriff "Programmiersprache", man muss nur auf der richtigen Metaebene denken.


Mh ... ich weiß nur nich ob man das Compilieren nennt. Also es wird, wie du schon sagst, letzendlich ALLES was man irgendwie am PC macht in Maschinencode umgewandelt, damit es ausgeführt werden kann. Trotzdem sehe ich zwischen compilierne und interpretieren noch einen unterschied. Aber belehrt mich ruhig mal


----------



## Fragile Heart (9. Juni 2011)

Crysis nerd schrieb:


> Also es wird, wie du schon sagst, letzendlich ALLES was man irgendwie am PC macht in Maschinencode umgewandelt


Das ist doch gar nicht wahr! Wenn ich einen Text schreibe so wird dieser doch nie in Maschinencode umgesetzt, die Software interpretiert diesen nur um dann damit zu arbeiten. Nach Supeq definition wäre aber alles eine Programmiersprache und dann können wir die Definition ja auch gleich in die Tonne werfen, weil überflüssig!

Eine Programmiersprachen kann aber nur etwas sein, dass mehr oder weniger direkt von einer Maschine (ich beziehe das mal nicht nur auf den PC) ausgeführt werden kann und damit muss es gewissen Bedingungen erfüllen! Dazu zählen zum Beispiel Kontrollstrukturen, die soweit ich weiß in HTML selbst nicht enthalten sind.

Turning Vollständig bezeichnet eine Programmiersprache die alle Kriterien an eine allgemeine Programmiersprache erfüllt. Das ganze würden den Rahmen hier sprengen, deswegen such einfach mal im Internet nach Alan Turning (daher der Name) bzw. turning vollständig.


----------

