Без заголовка
Я не возражаю, что алгоритмы. Только для алгоритмов обычно задаётся модель вычислений -- "выполнитель". Исполнитель это тот, кто знает что-то про кусочек мира. Его дёргает выполнитель, сверяясь с программой. Поэтому нельзя определять только программу. Нужно определять их всех (в том числе понимая, что выполнителя и исполнителя можно подменять при той же программе -- так, компилирование программы это такое особое её выполнение, а расчёт по ней -- ещё одно выполнение, но уже другого рода, с другим выполнителем).