Pergunta

As fórmulas representadas em uma árvore sintaxe então recalculada usando um padrão de design como o Visitor padronizar? Como você iria sobre reproduzindo o processo de recálculo no código?

Foi útil?

Solução

Provavelmente, como você diz, um palpite é que o Excel cria um monte de ASTs, uma para cada grupo independente composto de células, onde as folhas são a origem, os dados estáticos, e os nós são fórmulas.

Em seguida, ele calcula o resultado para cada nó, com uma href="http://en.wikipedia.org/wiki/Tree_traversal#Iterative_traversing" rel="nofollow noreferrer"> pós-fim árvore

Você tem que ter em conta folha / cancelamento nó, recálculo parcial, ecc. Se não estou errado, eu li em algum lugar que o Excel pode se beneficiar de vários núcleos processadores para recalcular uma folha em paralelo.

Outras dicas

Resolver Um era uma planilha desenvolvida utilizando IronPython.

O seu código-fonte foi lançado como Dirigível Spreadsheet . Há costumava ser um artigo que descrito seu algoritmo geral:

enter descrição da imagem aqui

são as fórmulas representadas em uma AST então recalculada usando um padrão de design como o padrão do visitante?

Você está pensando intérprete , não visitante. Enquanto treewalking usando um visitante pode ser empregue em conjunção com a interpretação, empregando um intérprete faz mais sentido aqui (daí o nome). O que isto faz é basicamente o que friol escreveu, ou seja, percorrer a árvore em pós-ordem e executar a função associada a cada nó.

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