Язык для определения ссылок между элементами в 2D массиве / сетке - PullRequest
3 голосов
/ 08 марта 2010

Кто-то создал язык, который можно использовать для общего отслеживания / анализа зависимостей между ячейками сетки?

Я пытаюсь написать электронную таблицу, в которой используется функциональный язык. Мне нужно нечто похожее на то, что Excel может использовать для управления ссылками между ячейками. Язык будет использоваться для создания модели, которую можно проанализировать для оптимизации.

Ответы [ 2 ]

2 голосов
/ 14 марта 2010

Существует библиотека Lisp, которая была портирована на многие Lisps (и некоторые другие языки)

http://common -lisp.net / проект / клетки /

По крайней мере, некоторые идеи стоит заимствовать.

1 голос
/ 09 марта 2010

Я сделал это с древним калькулятором sc, очень давно. Вы строите график зависимостей на основе содержимого ячеек. Я знаю, что ячейки имеют двумерные имена, но для простоты я собираюсь назвать их одиночными символами.

  • Предположим, ячейка X содержит формулу Y+1. Затем вы добавляете ребро от X до Y в графе зависимостей. Если X содержит формулу Y+0.15*Z, то вы добавляете два ребра: от X до Y и от X до Z.

  • Когда вы посетили каждую ячейку, вы построили весь график. Сделайте топологическую сортировку. Если циклов нет, вам повезло - вы можете пересчитать в топологическом порядке.

  • Вы можете использовать один и тот же график зависимостей для анализа и оптимизации. Вы также можете постепенно обновлять график зависимости при изменении содержимого ячеек.

Надеюсь, этого достаточно, чтобы вы начали.

...