Frage

Ich erstelle ein Stück Software (geschrieben in C #, wird eine Windows-Anwendung sein) und ich lief in dieses Problem -

Ich habe eine Reihe von Variablen bekam, und ich brauche, damit der Benutzer eine Vielzahl von mathematischen Funktionen auf diesen Variablen definieren.

Aber meine Benutzer müssen keine Vorkenntnisse über die Programmierung haben müssen.

Die Optionen, die ich in Betracht gezogen habe, sind:

  • Erstellen Sie eine Art von GUI für die Definition der mathematischen „Funktionen“. Aber das ist sehr begrenzt.
  • Implementieren Sie eine sehr einfache eingebettete Sprache, die die Flexibilität bieten, während relativ leicht verbleibenden zu verstehen. Ich sah Lua, aber das Problem mit diesem ist, dass Sie ziemlich viel Bedarf Vorkenntnissen in der Programmierung haben. Ich war etwas besser lesbar (etwas ähnlich wie SQL), zum Beispiel zu denken „assign 3 bis X;“

Weitere Ideen sind willkommen.

Ich bin grundsätzlich für den besten Weg, um hier zu gehen, unter der Annahme, dass meine Nutzer haben keine Kenntnisse in der Programmierung.

Beachten Sie jedoch, dass dies nicht das Hauptmerkmal meiner Software, so gehe ich davon aus, dass, wenn ein Benutzer will / muss diese Funktion nutzen, er für ein paar Minuten die Zeit Blick in das Handbuch nehmen und lernen wie so, so lange zu tun, da es nicht zu kompliziert.

Danke, Malki:)

War es hilfreich?

Lösung

Was Sie wollen, ist eine domänenspezifische Sprache . Ich sehe, Sie haben Lua versucht und nicht feststellen, dass akzeptabel -. Ich werde davon ausgehen, dass die meisten vorgefertigten Skriptsprachen sind aus dann

Abhängig von Ihrer erwarteten Funktion Komplexität, würde ich empfehlen, dass Sie einen Schuss auf einen kleinen Implementierung rekursiven Abstiegs Parser , so dass Sie genau Ihre Sprache angeben. So können Sie so etwas wie erkennen kann:

assign 3 to X
show sin(X * 5)

Wenn dies ein bisschen über das, was Sie bereit sind zu tun, können Sie einige Parsing Unterstützung aus einer Bibliothek wie bekommen Irony ; dies können Sie über die Verwendung des abstrakten Syntaxbaumes konzentrieren, anstatt das Spiel mit Tokenisieren / seit einiger Zeit Lexing.

Wenn Sie möchten, können Sie sich auch unter FLIEHEN , die werden analysieren und zu bewerten einige ziemlich komplexe Ausdrücke richtig aus dem Tor.

Andere Tipps

ANTLR ist ein greate-Parser, wenn Sie Ihre eigene Sprache machen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top