Wie kann ich meine eigene Programmiersprache erstellen?
Überleg dir, wie sie aussehen soll. Am Besten schreibst du kleine Beispielprogramme in deiner neuen Sprache, um ein Gefühl dafür zu bekommen, wie man die Typischen Idiome ausdrückt. Dann stellst du eine Grammatik für die Sprache auf, wirfst sie einem Parsergenerator vor und testest sie. Als nächstes ergänzt du den Parser mit Code, der einen abstrakten Syntaxbaum erstellt. Den ergänzt du um Code, der ihn traversiert, semantische Prüfungen durchführt und die Knoten um Informationen ergänzt, die du bei der Zwischencodeerstellung oder Interpretierung brauchst. Jetzt kommt es darauf an, ob du einen Compiler oder einen Interpreter schreiben willst. Für einen Interpreter traversierst du den abstrakten Syntaxbaum nochmal und führst in jedem Knoten Code aus, der die Semantik des Knotens repräsentiert. Für einen Compiler traversierst du den Baum un erzeugst Zwischencode. Da haben sich Static Single Assignments gut bewährt. Wenn du es dir einfach machen möchtest, benutzt du das Format von LLVM, dann fällt dir Optimierung und Codegenerierung praktisch in den Schoß. Alternativ kannst du natürlich auch eine Art Bytecode erzeugen und dafür einen Interpreter schreiben, so wie es Python oder Ruby machen. Und schon bist du fertig.
Sollte das etwas zu knapp gewesen sein, dann gibt es Unmengen an Büchern zu dem Thema. Frag mal Amazon nach dem Stichwort Compiler Construction. Alternativ gibt es im Rahmen des Informatikstudiums Vorlesungen zu dem Thema, die in der Regel über mehrere Semester gehen (wenn sie das Thema erschöpfend behandeln wollen). Von daher habe ich mich hier kurz gefasst, um den Kollegen nicht das Wasser abzugraben.