Регистры как явное состояние машины
Состояние машины можно представить как фиксированный набор значений регистров, тогда как один переход вычисляет следующее состояние.
Какая информация должна присутствовать для возобновления вычисления?
- Представление регистров в виде одного явного значения состояния
- Отделение одиночного перехода от повторного выполнения
- Чтение конечного состояния вместо одного лишь итогового числа
Список состояния содержит a, b и число завершенных переходов. Процедура step выполняет одно евклидово сокращение и возвращает новый список, не скрывая ни одного изменяющегося значения.
Процедура run не содержит самого арифметического правила. Она проверяет, равен ли b нулю, и в противном случае повторяет step, поэтому правило перехода и контроллер остаются разделенными.
- Вывод
- —
- Значение
- —
- Диагностика
- —
Первая программа возвращает конечное состояние регистров (2 0 4). Значение gcd равно 2, и завершились четыре перехода.
Проследите за каждым применением step и наблюдайте, как прежнее значение b становится следующим значением a. Значение состояния фиксирует счетчик переходов наряду с арифметическими регистрами.
Измените программу и сравните результат.
Запустите машину со значением a, равным 30, и значением b, равным 18. Предскажите полное конечное состояние, включая число переходов.
Показать подсказку
Записывайте один новый список после каждой операции вычисления остатка.