Hallo,
für die Abschlussarbeit meines Studiums musste ich ein Thema wählen. Ich hätte es mir zwar einfach machen können und hätte auch einfach eine Applikation entwickeln können aber je nach dem was es für eine Applikation war, hätte ich sehr wahrscheinlich den Bachelor of Arts bekommen. Da ich unbedingt den Bachelor of Science haben will, habe ich mir zuerst Gedanken gemacht eine eigene Programmiersprache zu entwickeln. Ich habe auch schon damit angefangen und zwar die Implementierungssprache ist C++ und ich arbeite auch mit Lex und YACC. Das Problem bei der Sache ist, ich habe das Ganze und auch mich selbst sehr überschätzt. Für die Arbeit habe ich 5 Monate Zeit, dabei muss ich auch eine Doku schreiben und auch noch ne Arbeit darüber mit 10'000 Wörter. Also in dieser Zeit sehe ich es als UNMÖGLICH! Also brauchte ich einen Plan B und der war die Entwicklung einer Skriptsprache. Auch das wird in dieser Zeit schon ziemlich knapp aber sollte realistischer sein. Die Datei müsste lediglich geparst werden und somit sind Compiler und Interpreter kein Thema mehr.
Es sollte also eine Skriptsprache sein, welche nur für Web geeignet ist, also so ähnlich wie PHP oder JSP. Nicht zu verwechseln mit pures JavaScript, denn es müsste serverseitig sein. FreeMarker kommt meine Vorstellungen auch ziemlich nah, obwohl es nur ein Template Engine ist.
Ich plane das Ganze mit Java zu machen. Ich bin nicht wirklich gut in Java und würde es am liebsten mit einer Programmiersprache machen, die ich auch beherrsche aber der Sinn und Zweck des Ganzen ist ja auch das Lernen.
Meine Frage: Könnt ihr mir vielleicht eine Anleitung geben, wie ich am besten Schritt für Schritt vorgehen soll?
So stelle ich mir das Ganze vor:
Ich lese die Datei und erhalte einen String. Angenommen der String sieht so aus:
Alle Tokens anbieten kann und muss ich auch nicht. Ich plane vorerst mal die wichtigsten wie: Print, Kommentare, If- und Else-Statement, Variablen, Foreach-Loop (nein, kein while und kein for) und das schwierigste zuletzt, Objekte, Methoden und Eigenschaften, welche aus dem Backend kommen (ähnlich wie bei JSP). Das sind mal die Basics, die ich haben muss. Alles andere ist nice to have.
Was auch noch sehr wichtig ist ... ich müsste bei der Projektarbeit deutlich begründen, was meine Skriptsprache so besonders macht. Was unterscheidet sich meine Skriptsprache im Vergleich zum Konkurrenz. Das ist ziemlich eine fiese Frage, denn ich könnte garantiert NIX besser machen als der Konkurrenz aber hierbei ist die Kreativität gefragt. Vielleicht hätte jemand da eine Idee.
für die Abschlussarbeit meines Studiums musste ich ein Thema wählen. Ich hätte es mir zwar einfach machen können und hätte auch einfach eine Applikation entwickeln können aber je nach dem was es für eine Applikation war, hätte ich sehr wahrscheinlich den Bachelor of Arts bekommen. Da ich unbedingt den Bachelor of Science haben will, habe ich mir zuerst Gedanken gemacht eine eigene Programmiersprache zu entwickeln. Ich habe auch schon damit angefangen und zwar die Implementierungssprache ist C++ und ich arbeite auch mit Lex und YACC. Das Problem bei der Sache ist, ich habe das Ganze und auch mich selbst sehr überschätzt. Für die Arbeit habe ich 5 Monate Zeit, dabei muss ich auch eine Doku schreiben und auch noch ne Arbeit darüber mit 10'000 Wörter. Also in dieser Zeit sehe ich es als UNMÖGLICH! Also brauchte ich einen Plan B und der war die Entwicklung einer Skriptsprache. Auch das wird in dieser Zeit schon ziemlich knapp aber sollte realistischer sein. Die Datei müsste lediglich geparst werden und somit sind Compiler und Interpreter kein Thema mehr.
Es sollte also eine Skriptsprache sein, welche nur für Web geeignet ist, also so ähnlich wie PHP oder JSP. Nicht zu verwechseln mit pures JavaScript, denn es müsste serverseitig sein. FreeMarker kommt meine Vorstellungen auch ziemlich nah, obwohl es nur ein Template Engine ist.
Ich plane das Ganze mit Java zu machen. Ich bin nicht wirklich gut in Java und würde es am liebsten mit einer Programmiersprache machen, die ich auch beherrsche aber der Sinn und Zweck des Ganzen ist ja auch das Lernen.
Meine Frage: Könnt ihr mir vielleicht eine Anleitung geben, wie ich am besten Schritt für Schritt vorgehen soll?
So stelle ich mir das Ganze vor:
Ich lese die Datei und erhalte einen String. Angenommen der String sieht so aus:
if (age > 18) { doSomething(); }
und ich möchte wissen, was zwischen den geschleiften Klammern für ein Token ist. Mit Regex ((?<={ )[a-zA-Z();]+
) könnte ich also z.B. abfragen, ob es eine Funktion ist. Jedes Token müsste also gelesen werden. Sollte das aktuelle Token also nicht zum letzten passen, erfolgt eine Fehlermeldung.Alle Tokens anbieten kann und muss ich auch nicht. Ich plane vorerst mal die wichtigsten wie: Print, Kommentare, If- und Else-Statement, Variablen, Foreach-Loop (nein, kein while und kein for) und das schwierigste zuletzt, Objekte, Methoden und Eigenschaften, welche aus dem Backend kommen (ähnlich wie bei JSP). Das sind mal die Basics, die ich haben muss. Alles andere ist nice to have.
Was auch noch sehr wichtig ist ... ich müsste bei der Projektarbeit deutlich begründen, was meine Skriptsprache so besonders macht. Was unterscheidet sich meine Skriptsprache im Vergleich zum Konkurrenz. Das ist ziemlich eine fiese Frage, denn ich könnte garantiert NIX besser machen als der Konkurrenz aber hierbei ist die Kreativität gefragt. Vielleicht hätte jemand da eine Idee.