Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория языков программирования и методы трансляции..pdf
Скачиваний:
28
Добавлен:
05.02.2023
Размер:
3.41 Mб
Скачать

257

9.8 ОШИБКИ, СВЯЗАННЫЕ С НАРУШЕНИЕМ ОГРАНИЧЕНИЙ

Априори программисты предполагают, что компилятор должен быть в состоянии скомпилировать любую программу, написанную на исходном язы-

ке. Однако это не всегда так из-за конечных технических характеристик кон-

кретной ЭВМ. Хороший компилятор имеет мало произвольных ограничений,

но если ограничения вводятся, они должны быть такими, чтобы устраивать подавляющее большинство программ. Обычно в таких случаях вводятся ограничения [2]:

1)на размер программы, которую можно скомпилировать;

2)на число элементов в таблице символов или идентификаторов;

3)на размер стека разбора или других стеков времени компиляции.

Если один и тот же объем памяти отводится под совместное пользова-

ние для различных таблиц, то может быть ограничен общий объем, а не объ-

ем, занимаемый конкретной таблицей.

Существует вероятность того, что программа заставит нарушить какое-

нибудь из ограничений. В этом случае важно, чтобы компилятор выдавал четкое сообщение пользователю, какое именно ограничение он нарушил.

· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

Контрольные вопросы по главе 9

·· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·

1.Типы ошибок, возникающие при написании программ.

2.Технология исправления ошибок. Режим переполоха.

3.Технология исправления ошибок. Исключение символов. Включе-

ние символов.

4.Правила для ошибок.

5.Предупреждения и сообщения о синтаксических ошибках.

6.Контекстно-зависимые ошибки.

7.Ошибки времени прогона.

258

8. Ошибки, связанные с нарушениями ограничений.