[minsky] Марвин Минский Фреймы для представления знаний М.: Энергия, 1979. 152 с

В качестве модели представления (мета)программ было выбрано расширенное представление фреймов Мински. Оригинальные фреймы не имели очень важного для метапрограммирования функционала: способности хранить упорядоченные объекты. Это свойство необходимо для представления любых программ (*), в качестве примера см. деревья разбора/AST и реализацию атрибутных грамматик [dragon]. С другой стороны, фреймы практически полностью соответстивуют объектам в ООП, в т.ч. бесшовно отображаются на объекты Python.

(*) последовательного набора инструкций, или рекурсивно вложенных структур

Если мы попытаемся описать дерево программы через граф объектов (фреймов), мы сталкиваемся с необходимостью иметь упорядоченные контейнеры, например для хранения операндов в выражении деления. Одновременно нам необходим ассоциативный массив для хранения и обработки атрибутов при преобразованиях кода с использованием атрибутных грамматик.