Измените процедуру extract-labels
Следующий код для регистровой машины неоднозначен, поскольку метка
here
определена более одного раза:
start
(goto (label here))
here
(assign a (const 3))
(goto (label there))
here
(assign a (const 4))
(goto (label there))
there
Каково будет содержимое регистра a в нашем имитаторе, когда управление достигнет
there
? Измените процедуру
extract-labels
так, чтобы ассемблер сообщал об ошибке в случае, когда одно и то же имя метки обозначает две различных точки в коде.
Комментарии отсутствуют.