Question

Je crée un logiciel (écrit en C #, sera une application Windows) et je suis tombé sur ce problème -

J'ai un ensemble de variables, et je dois permettre à l'utilisateur de définir un large éventail de fonctions mathématiques sur ces variables.

Mais mes utilisateurs ne doivent pas nécessairement avoir une connaissance préalable de la programmation.

Les options que j'ai pris en compte sont les suivants:

  • Créer une sorte de GUI pour définir les « fonctions » mathématiques. Mais ce qui est très limitatives.
  • Mettre en œuvre un langage intégré très simple, qui offrira une flexibilité tout en restant relativement facile à comprendre. Je regardais Lua, mais le problème avec cela est que vous avez assez bien besoin d'avoir une connaissance préalable de la programmation. Je pensais à quelque chose de plus lisible (un peu similaire à SQL), par exemple « assign 3 à X; »

D'autres idées sont les bienvenues.

Je cherche essentiellement la meilleure façon d'aller ici, en supposant que mes utilisateurs ne disposent pas de connaissances dans la programmation.

Cependant, notez que ce n'est pas la principale caractéristique de mon logiciel, donc je suppose que si un utilisateur veut / a besoin d'utiliser cette fonction, il prendra le temps de regarder le manuel pendant quelques minutes et apprendre comment le faire, tant que ce n'est pas trop compliqué.

Merci, Malki:)

Était-ce utile?

La solution

Qu'est-ce que vous voulez est une langue spécifique de domaine . Je vois que vous avez essayé Lua et n'a pas trouvé que acceptable -. Supposer que la plupart je vais langages de script prédéfinis sont alors à

En fonction de la complexité de votre fonction attendue, je vous recommande de donner un coup de feu à la mise en œuvre d'un petit descente récursive analyseur de sorte que vous pouvez exactement préciser votre langue. De cette façon, vous pouvez réaliser quelque chose comme:

assign 3 to X
show sin(X * 5)

Si cela est un peu au-delà de ce que vous êtes prêt à faire, vous pouvez obtenir une aide de l'analyse syntaxique d'une bibliothèque, comme ironie; cela vous permettra de mettre l'accent sur l'utilisation de l'arbre de syntaxe abstraite plutôt que de jouer avec tokenizing / Lexing pendant un certain temps.

Si vous voulez, vous pouvez même regarder FUIR , qui analysera et évaluera droite quelques expressions assez complexes hors de la porte.

Autres conseils

ANTLR est un analyseur greate si vous voulez faire votre propre langue

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top