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公式未使用OfficeOpenXML計算
- 5. Excel重新計算
- 6. VBA-Excel公式參考 - 計算刷新
- 7. VBA excel公式計算?
- 8. Excel不計算公式
- 9. PHP Excel計算公式
- 10. Excel公式計算值
- 11. excel公式sumif公式不計算
- 12. ODFToolkit - 重新計算所有的公式
- 13. 設置xlsx重新計算公式
- 14. Open XML SDK 2.5能夠重新計算Excel公式嗎?
- 15. 打開xml sdk excel公式重新計算緩存問題
- 16. 排序時是否重新計算excel公式?
- 17. Excel c#問題 - 公式未被重新計算
- 18. 來自R到Excel數據導出:公式不重新計算
- 19. Excel公式:計算調查統計
- 20. 什麼是情緒計算公式
- 21. Excel中重新計算
- 22. 重新計算式
- 23. 住房貸款計算公式(算法)?
- 24. 從記錄集複製Excel計算公式時不計算
- 25. Excel公式調試 - 中位數計算
- 26. Excel公式以h計算時間:mm
- 27. Excel公式計算IF和ETC
- 28. excel中的自動公式計算
- 29. LibreOffice/Excel表格計算公式
- 30. Excel公式來計算表間連接
謝謝 - 我已經看到用於走AST的Visitor模式,並認爲這是最常用的方法。我會按照您的建議檢查解釋器模式。 – 2008-11-24 22:30:10