Дэвид Марр в 1970-х годах. Напомним в этой связи, что Марр различал три уровня описания сложных систем:
вычислительная архитектура — функциональное назначение подсистем в системе;
алгоритмический уровень — алгоритмы достижения целей подсистем;
уровень реализации — механизмы, реализующие эти алгоритмы.