用于定义2D阵列/网格中元素之间的引用的语言

时间:2010-03-08 18:47:51

标签: programming-languages dsl multidimensional-array

是否有人创建了一种语言,可用于以通用方式跟踪/分析网格单元格之间的依赖关系?

我正在尝试编写一个使用函数式语言的电子表格。我所追求的是类似于Excel可能用来管理单元格之间的引用的东西。将使用该语言创建一个可以进行优化分析的模型。

2 个答案:

答案 0 :(得分:2)

有一个Lisp库被移植到许多Lisps(以及其他一些语言)

http://common-lisp.net/project/cells/

至少有一些想法值得借鉴。

答案 1 :(得分:1)

很久以前,我用古老的sc计算器完成了这项工作。您可以根据单元格的内容构建依赖关系图。我知道单元格有二维名称,但为了简单起见,我将用单个字符命名它们。

  • 假设单元格X包含公式Y+1。然后,在依赖关系图中添加XY的边。如果X包含公式Y+0.15*Z,则您添加两个边:从XY以及从X到{{1 }}

  • 当您访问过每个单元格时,您已经构建了整个图形。进行拓扑排序。如果没有周期,那么你很幸运 - 你可以按照拓扑顺序重新计算。

  • 您可以使用相同的依赖关系图进行分析和优化。您还可以随着单元格内容的更改而逐步更新依赖关系图。

我希望这足以让你开始。