Pergunta

Eu estou criando um componente de software (escrito em C#, vai ser um aplicativo do windows) e corri para esse problema-

Eu tenho um conjunto de variáveis, e eu preciso permitir que o usuário defina uma ampla gama de funções matemáticas com essas variáveis.

Mas o meu blog não tem necessariamente ter qualquer conhecimento prévio de programação.

As opções que eu tenho são considerados:

  • Criar algum tipo de interface gráfica para a definição matemática "funções".Mas que é muito limitante.
  • Implementar uma forma muito simples incorporado linguagem, que vai oferecer flexibilidade mantendo-se relativamente fácil de entender.Eu olhei para a Lua, mas o problema com isso é que você praticamente precisa ter conhecimento prévio em programação.Eu estava pensando em algo mais legível (de certa forma similar ao SQL), por exemplo, "atribuir 3 para X;"

Outras ideias são bem-vindas.

Eu basicamente estou procurando a melhor forma de o fazer aqui, sob o pressuposto de que o meu blog não tem qualquer conhecimento em programação.

No entanto, note que esta não é a principal característica do meu software, então eu estou supondo que, se um usuário quer/precisa para usar este recurso, ele vai ter tempo para olhar o manual por alguns minutos e aprenda como fazê-lo, contanto que ele não seja muito complicado.

Obrigado, Malki :)

Foi útil?

Solução

O que você quer é um linguagem específica de domínio.Eu vejo você já tentou Lua e não achar que aceitável--eu vou assumir que a maioria dos pré-construídos linguagens de script estão fora em seguida.

Dependendo de sua função esperada complexidade, eu recomendo que você dê um tiro na implementação de uma pequena recursiva descida analisador para que você possa exatamente especificar a sua língua.Desta forma, você pode perceber que algo como:

assign 3 to X
show sin(X * 5)

Se isto é um pouco além do que você está disposto a fazer, você pode obter alguma análise ajuda a partir de uma biblioteca como Ironia;isto irá permitir que você se concentrar em usar a sintaxe abstrata da árvore, em vez de jogar com simbolização/análise por algum tempo.

Se você quiser, você pode até olhar FUGIR, que irá analisar e avaliar alguns bastante complexos, expressões de direito fora do portão.

Outras dicas

ANTLR é um greate analisador se você quiser fazer a sua própria língua

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top