DDP-Projekt / Kompilierer

Der Kompilierer der Deutschen Programmiersprache
https://ddp.le0n.dev/Spielplatz
MIT License
138 stars 4 forks source link

Entfernung der Klammern von einigen Ausdrücken #47

Open tmaxmax opened 8 months ago

tmaxmax commented 8 months ago

Wenn einige Regeln der deutschen Sprache gefolgt würden, könnten die Klammern von einigen Ausdrücken entfernt werden. Zum Beispiel:

Ich weiß noch nicht, wie der Parser eigentlich implementiert ist, und somit habe ich keine Ahnung davon, wie möglich solche Änderungen dazu wären. Wenn dieser Vorschlag als angemessen betrachtet würde, könnte ich mich in den Parsercode vertiefen, um es zu verstehen und einen Implementierungsversuch zu machen. Zuletzt wollte ich erwähnen, dass ich erfahren mit Go bin und deshalb brauche keine Hilfe mit der Sprache.

Was denkt euch?

P.S. Deutsch ist nicht meine Muttersprache, ich entschludige mich für die Fehler.

bafto commented 8 months ago

Über solche Sachen hab ich auch schon nachgedacht, aber am Ende ist das Problem immer, dass Sprache selten perfekten Regeln folgt.

Man müsste schauen ob es parser technisch möglich ist einen beliebigen Satz in seine Bestandteile (also Haupt- und Nebensätze und die Satzbausteine) zu zerlegen und für diese dann Regeln für Operatoren und Funktionsaufrufe festlegen. Problem: natürliche Sprache ist keine Programmiersprache. In einer Programmiersprache (was DDP sein soll) braucht es feste Regeln, die immer genau gleich funktionieren und kaum eine Sprache ist so aufgebaut. Außerdem müssten dann auch alle Aliase korrekt aufgebaut sein.

Ich müsste mal einen Sprachwissenschaftler fragen, was in der Richtung, die du vorschlägst so alles möglich ist, selber kenne ich mich da auch nicht perfekt aus. Das Kernproblem ist halt wie gesagt, dass es in jeder natürlichen Sprache gefühlt tausende Ausnahmen zu jeder "Regel" gibt, es aber in einer Programmiersprache keine mehrdeutigkeiten geben darf.

Ich schaus mir aber nochmal genauer an.

P.S.: in deinem 2. Beispiel ist die äußere Klammer überflüssig, es wird nur die innere benötigt.

P.P.S.: Im Moment stehe ich erstmal vor der Aufgabe Generics zu implementieren, was ein sehr großes und unglaublich nützliches/wichtiges Feature ist. Wenn ich damit fertig und zufrieden bin schau ich nochmal, weil so etwas wie du es vorschlägst wäre eine Grundlegende Änderung der Semantik.