Аппаратные схемы тонкого разделения доступа к адресному пространству
не имели большого успеха не только из-за высоких накладных расходов, но
и из-за того, что решали не совсем ту проблему, которая реально важна.
Для повышения надежности системы в целом важно не обнаружение ошибок и
даже не их локализация с точностью до модуля сама по себе, а возможность
восстановления после их возникновения. Самые распространенные фатальные
ошибки в программах — это ошибки работы с указателями и выход индекса
за границы массива (в наш сетевой век ошибки второго типа более известны
как "срыв буфера"). Эти ошибки не только часто встречаются, но и очень
опасны, потому что восстановление после них практически невозможно. Ошибки
работы с указателями еще можно попытаться устранить, искоренив само понятие
указателя. Примерно этой логикой продиктован запрет на формирование указателей
в машинах Burroughs, именно из этих соображений в Java и некоторых других
интерпретируемых языках указателей вообще нет. Однако искоренить понятие
индексируемого массива уже не так легко. д ошибки индексации присуши всем
компилируемым языкам, начиная с Fortran и Algol 60. Вставка проверок на
границы индекса перед каждой выборкой элемента массива создает накладные