Wie entwickelt man eine eigene Programmiersprache?

5 Antworten

Es geht im Wesentlichen darum den Maschinencode (das ist das, was der Prozessor eigentlich tut und ist sehr begrenzt) so zusammenzustellen, dass ein vernüftiges Programm draus wird. Der Maschinencode versteht nur sehr einfache Ooerationen. Hole vom Speicher an Stelle X Byte y. Schreibe es zurück, lade Sprungbefehl, addiere, multipliziere. Damit kann man nicht mal auf die Platte schreiben. Eine endlose Zahl solcher Befehle ergibt eine Funktion, die dann Programme verwenden können. Eine endlose Zahl solcher Funktionen ergeben eine System-Bibliothek (unter Windows eine dll DynamicLinkLibrary)

Viele solcher Bibilotheken zusammen mit dem Code des eigenen Programms zusammengelinkt (daher LinkLibrary), ergeben erst ein Programm.

Eine Programmiersprache zu entwickeln stellt also folgende Aufgaben: Mache all diese Funktionen verfügbar. Dies wird normalerweise mit einem "Compiler" erledigt. (Compile=Zusammenstellen). Der tut nichts anderes, als die Anweisungen, die in deiner Programmiersprache geschrieben werden (das ist der Quellcode) so zu übersetzen, dass all diese Funktionen korrekt zusammenarbeiten. Oft sind die Schritte nach ihren Aufgaben unterteilt. Das reine compilieren genügt noch nicht, sondern es muss auch noch mit den Bibliotheken gelinkt werden. Also schreibst du drei Programme: Einen Parser (sowas, wie ein Analysewerkzeug, das deinen Quellcode liest), einen Compiler (der es in Funktionsaufrufe übersetzt und einen Linker (der sich dann um das zusammenbasteln der ganzen Funktionen zu einem Programm kümmert).

Gut überlegen solltest du dir, was deine Sprache in einem Quelltext alles erlaubt, und wie diese Sprachelemente gut übersetzt werden in die jeweiligen Funktionen.

Für eine halbwegs brauchbare eigene Programmiersprache würde ich mal so 300 Jahre einplanen.

martin7812  01.12.2013, 20:02

Für eine halbwegs brauchbare eigene Programmiersprache würde ich mal so 300 Jahre einplanen.

Ich selbst habe bereits Compiler für verschiedene Programmiersprachen geschrieben. Ein Monat für den Compiler ist realistisch. Einen Compiler habe ich mal von Null auf ein zwei Tagen geschrieben. Fragt sich, ob es sich um "halbwegs brauchbare" Programmiersprachen handelt.

Die erste Version von Turbo Pascal wurde von nur drei Personen geschrieben. Diese Programmiersprache war jahrelang eine meistgenutzten Compilersprachen überhaupt.

1

Ich habe vor vielen, vielen jahren mal eine Programmiersprache entwickelt... War eine reine Zweckentwicklung, weil Basic auf meinem Oric einfach zu langsam war. Es soltle die Mandelbrot-Grafik errechnet werden...

Sehr einfach erzeugt man Sprachen, die UPN benutzen. UPN bedeutet umgekehrte polnische Notation und ist eine Art, Rechenoperationen ohne Klammern zu beschreiben. Die Programmiersprache FORTH benutzt diese Schreibweise.

Beispiel: (a+b)5-9(c-d)

UPN: a b + 5 * 9 c d - * -

Computer können diese Folgen sehr einfach verarbeiten, denn die Zahlen und Operationen werden einfach in einen sogenannten Stapelspeicher gelegt und dann abgearbeitet.

Meine Sprache hat mir damals ermöglicht, eine Mandelbrot-Grafik in nur vier Tagen zu berechnen, mit Basic wären es Wochen gewesen. Heute geht das in Sekunden ... :)

Am besten von einer bestehenden Programmiersprache ausgehen, diese verstehen, dann noch etwas Compilerbau in der Informatik studieren und schon sollten die Ideen für eine neue Programmiersprache sprießen. Viele höhere Programmiersprachen sind in anderen Programmiersprachen geschrieben, daher ist es unbedingt notwendig sich vorher ein Bild von bestehenden Programmiersprachen zu machen. Ich empfehle das Studium der Informatik zu diesem Zwecke...