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