Open tmaxmax opened 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.
Wenn einige Regeln der deutschen Sprache gefolgt würden, könnten die Klammern von einigen Ausdrücken entfernt werden. Zum Beispiel:
Der Wahrheitswert ValOpVal ist wahr, wenn (das 2. Element des Kellers) eine Zahl ist
Hier verbindet der Artikel "des" die Ausdrückedas 2. Element
undKellers
. Dadurch könnte der Parser diese Tokens als einen einzigen Bestandteil betrachten.Der Wahrheitswert DollarVal ist wahr, wenn (das 1. Element des Kellers gleich "$" ist und (das oberste Element des Kellers) eine Zahl ist).
Durch die gleichen Regelndas oberste Element des Kellers
keine Klammern brauchen würde. Zudem würde die Konjunktion "und" die Satzteliendas 1. Element des Kellers gleich "$" ist
unddas oberste Element des Kellers eine Zahl ist
.Schreibe (das Ergebnis von (der nächsten Zeile)) auf eine Zeile.
Die Tokensder
,nächsten
undZeile
könnten als eine einzige Einheit betrachtet werden, weil die Artikel "der" in diesem Fall ein Nomen benötigt. Danach würde die Präposition "von" die Einheiten "das Ergebnis" und "der nächsten Zeile" verbinden.Schreibe (eine Liste, die aus wahr, falsch, wahr besteht) mit dem Seperator " ".
Hier kommt nach dem Komma ein Artikel, was der Beginn eines Relativsatzes hindeutet. "besteht" ist ein Verb und dadurch wird der Relativsatz beendet.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.