Programmiersprache entwickeln?

4 Antworten

Du müsstest dich erst mal damit beschäftigen, wie eine Programmiersprache im Allgemeinen funktioniert... Also nicht eine konkrete Sprache, sondern abstrakter: z.B. was unterscheidet eine Programmiersprache von regulären Ausdrücken, wie muss eine Syntax beschaffen sein. Was für Befehle muss es mindestens geben.

Du kannst dir auch mal exotische Programmiersprachen wie Brainfuck anschauen.

Dann kann man sich überlegen, ob die Sprache kompiliert werden soll - also wirklich umgewandelt - oder ob sie interpretiert wird. Oder eine Mischung, wie es Java und .Net machen. Theoretisch könntest du z.B. einen Java-Bytecode-Interpreter in Javascript bauen...

Das "erfinden" von Programmiersprachen ist übrigens Kernelement eines Informatikstudiums. Am Schluss also kein Hexenwerk.

Warum sollte man das tun? Außer als Hobby-Spaß Projekt ergibt das nicht viel Sinn.

Es gibt verschiedene Sprachen die zu JavaScript transpiled werden, TypeScript, coffee script (nutzt das noch jemand?).

Kannst dir ja mal anschauen.

Viele moderne Programmiersprachen setzen auch auf llvm als Compiler toolchain. Das könnte auch nützlich sein wenn man ne neue Sprache entwerfen möchte. Es müsste damit mindestens wasm möglich sein, also quasi mit js kompatibel.

Hi anonym123679,

eine Programmiersprache zu entwickeln war und ist nicht leicht. Egal wie leicht diese später ist. Jede Programmiersprache hat eine eigene Syntax und folgt seiner eigenen Regeln. Sie bietet viele Funktionen die implemetiert werden müssen. Das kostet viel Zeit, nerven und Hirn eine Sprache aufzubauen. Und wenn man möchte das andere Diese auch verwenden, muss man noch mehr Zeit und Energie darin stecken als einem lieb ist.

Woher ich das weiß:Berufserfahrung – Ich bin gelernter Mediengestalter Digital und Print(IHK)

Einfach? Vergiss es.

Es gibt aber eine Video-Reihe, wo ein Microsoft Product Manager einen Compiler entwickelt, der in den .NET IL-Bytecode kompiliert:

https://www.youtube.com/watch?v=wgHIkdUQbp0&list=PLRAdsfhKI4OWNOSfS7EUu5GRAVmze1t2y

(Die Einbettung einer Playlist scheint hier nicht zu funktionieren. Such in den Playlists von seinem Kanal, wenn Du weiter schauen willst)

Das ganze Projekt ist OpenSource: https://github.com/terrajobst/minsk

Er generiert nicht den reinen Maschinencode, die .NET-Runtime übernimmt diesen riesigen Brocken an Komplexität, es ist also in etwa vergleichbar mit deinem Vorhaben, JavaScript zu generieren.
Die Programmiersprache ist auch keine Weltneuheit, er orientiert sich sehr stark an C#, aber das ist ja auch nicht falsch, wenn's nur um den Lern/Lehreffekt geht, wie man einen Compiler entwickelt.

Wenn Du das aber tatsächlich als produktives Projekt nutzen willst (also nicht nur just for fun): Lass es bleiben, das lohnt sich nicht und wird so gut wie sicher am Ende mehr Probleme machen, als dass es nützt.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler