O algoritmo faz uso do Excel para fórmulas Recalcular?
-
10-07-2019 - |
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?
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:
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ó.