Wie entstehen eigentlich Programmiersprachen?
Ich habe mir Gedanken gemacht, wie eigentlich Programmiersprachen (JavaScript,C++,...) entstehen. Diese müssen doch auch irgendwie gemacht werden... programmiert werden.
6 Antworten
https://de.wikipedia.org/wiki/Theoretische_Informatik
Das Gebiet umfasst so ziemlich dieses Thema.
Im Falle von JavaScript ist die Spezifikation der Sprache innerhalb von einer Woche entstanden. Und das merkt man leider auch :'D
Entstehen tut eine Programmiersprache indem du eine gültige Syntax definierst und im folgenden einen Compiler schreibst, der die Sprache in eine für das System verständliche Sprache umwandelst. Einen Übersetzer also.
Im Fall von Java ist das allerdings etwas spezieller, da hier der Javacode für alle Systeme gleich übersetzt wird, und das Java was du auf deinem Rechner installieren musst letztendlich dafür sorgt dass dieser Code auch auf deinem System lauffähig ist.
Ich hab selber noch keinen compiler geschrieben und kann das ganze auch nur theoretisch. Ich würde vermuten der Compiler setzt den Code in Assembler um. Aber wetten würde ich da auch nicht drauf, da das für mich bis jetzt nicht relevant war :)
Natürlich kann man eine neue Sprache erschaffen, die Frage ist allerdings warum man das tun sollte, denn wie schon richtig erwähnt wurde ist das keine triviale Aufgabe.
Soweit ich weiß wird das Programm entweder direkt in Maschinencode übersetzt oder in einen Zwischencode.
https://de.wikipedia.org/wiki/Compiler
Beispielsweise in Bytecode: http://www.javaworld.com/article/2077233/core-java/bytecode-basics.html
Hier noch ein Artikel zu Maschinensprache: https://de.wikipedia.org/wiki/Maschinensprache
Grob gesagt ist es so, dass ein Prozessor einen gewissen Befehlssatz hat. Das ist z.B. der Binärcode. Also die Anordnung der Nullen und Einsen.
Dieser Befehlssatz wird gerne auch Maschinensprache genannt.
Programmiersprachen (oder besser gesagt höhere Programmiersprachen) definieren durch Ausdrücke bestimmte Befehle der Maschinensprache in leichter zu merkende Syntax.
zurzeit ist das die Antwort, die ich am besten verstehe
Programmiersprachen entwickeln sich in Jahren, also sie sind eigentlich immer in Entwicklung, weil sie müssen sich auch der Technik anpassen oder umgekehrt, zum Beispiel haben sich in den letzten Jahren Objektorientierte Sprachen, wie Java durch gesetzt, weil es einfacher ist mit Objekten zu programmieren.
Wichtig ist eins: Dass am Ende Maschinencode für die verwendete Prozessorarchitektur herauskommt. Dieser Code besteht aus Nullen und Einsen, die von der CPU verarbeitet werden können. Irgendwann hat man ein Programm geschrieben, das einfache Befehle in Maschinencode übersetzt (zB. Assembler). Später hat man dann Sprachen geschrieben, die über die heutigen Sprachkonstrukte (Schleifen, Bedingte Abarbeitung usw.) verfügen und simple Ein/Ausgabeoperationen ausführen konnten (zB. C)
Es kommt also nur darauf an den Quellcode irgendwie in Maschinencode umwandeln zu können. Einige Sprachen, zB. C oder C++ haben mittlerweile sogar einen Stand erreicht, dass man den Kompiler in der jeweiligen Sprache selbst schreiben kann.
also übersetzt es diese sachen zu 'einsen und nullen'. wäre es also möglich, eine neue sprache zu programmieren?