syntax tree中的公式是否使用訪問者模式等設計模式進行重新計算?你將如何去重現代碼中的重新計算過程?Excel使用什麼算法重新計算公式?
1
A
回答
2
也許,正如你所說的,一個猜測是Excel創建了一堆AST,每個獨立的一組單元格,其中葉子是始發靜態數據,節點是公式。
然後它使用post-order樹遍歷算法計算每個節點的結果。
您必須考慮葉/節點取消,部分重新計算,ecc。如果我沒有錯,我會在某處閱讀Excel可以從多核處理器中並行重新計算一張表。
2
是否在AST中表示公式然後使用設計模式(如Visitor模式)重新計算?
你在想interpreter,不是訪客。雖然使用訪客的樹行程可以與解釋一起使用,但在這裏使用解釋器更有意義(因此名稱)。這個功能基本上是friol寫的,即按照後序遍歷樹並執行與每個節點相關的功能。
4
Resolver One是IronPython製作的電子表格應用程序。
有an explanation of the overall mechanic for the calculation [pythonology.org]它用於用戶生成的ecuations。
相關的圖像顯示解析器一個整體的算法。
應該注意,用戶可以編寫python代碼,以便在單元格和特殊的「工作表外」位置上進行解釋。
相關問題
- 1. OpenXML SDK:使Excel重新計算公式
- 2. Excel公式計算
- 3. Excel重新計算
- 4. Excel不計算公式
- 5. VBA excel公式計算?
- 6. PHP Excel計算公式
- 7. Excel公式計算值
- 8. excel公式sumif公式不計算
- 9. Excel c#問題 - 公式未被重新計算
- 10. 排序時是否重新計算excel公式?
- 11. Excel公式:計算調查統計
- 12. Excel中重新計算
- 13. 什麼是情緒計算公式
- 14. 住房貸款計算公式(算法)?
- 15. 從記錄集複製Excel計算公式時不計算
- 16. C#中的Excel公式計算#
- 17. excel中的自動公式計算
- 18. Excel公式計算貨幣兌換率
- 19. 使用公式計算Excel 2013條件格式
- 20. Sharepoint計算公式
- 21. 計算公式值
- 22. PHP計算公式
- 23. 使用什麼公式來計算小距離
- 24. 計算公式結果的最佳方法是什麼?
- 25. 爲什麼我的Google表格公式不會自動重新計算?
- 26. Excel中 - 的公式中,計算每次的第一個重複
- 27. 結束日期計算使用Excel的公式
- 28. 使用Apache POI獲取Excel中公式的計算值3.14
- 29. 如何使用公式計算excel中的數字
- 30. 如何使用VBA識別Excel ListObject表的計算列公式
謝謝 - 我已經看到用於走AST的Visitor模式,並認爲這是最常用的方法。我會按照您的建議檢查解釋器模式。 – 2008-11-24 22:30:10