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

234

ошибки должны туда загружаться и фиксировать профиль программы на это время. Эта информация позволяет локализовать место возникновения ошибки или, по крайней мере, блок (рамку), внутри которой возникла аварийная ситуация.

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

Априори программисты предполагают, что компилятор должен быть в состоянии скомпилироватьлюбую программу, написанную на исходном языке. Однако это не всегда так из-за конечных технических характеристик конкретной ЭВМ. Хороший компилятор имеет мало произвольных ограничений, но если ограничения вводятся, они должны быть такими, чтобы устраивать подавляющее большинство программ. Обычно в таких случаях вводятся ограничения:

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

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

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

Если один и тот же объем памяти отводится под совместное пользование для различных таблиц, то может быть ограничен общий объем, а не объем, занимаемый конкретной таблицей.

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

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

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

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

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

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

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

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

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

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

Список литературы

235

1.Ахо А., Ульяман Дж. Теория синтаксического анализа, перевода и компиляции. – М.: Мир, 1978. - 612 с.

2.Ханкер Р. Проектирование и конструирование компиляторов. – М.: Финансы и статистика, 1984 - 230 с.

3.Райуорд-Смит В.Дж. Теория формальных языков. Вводный курс.-М.: Радио и связь, 1988.

4.Льюис Ф., Розешкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов. -М.: Мир, 1979.

5.Вайгартен Ф. Трансляция языков программирования. - М.:

Мир, 1977.

6.Гросс М., Лантен А. Теория формальных грамматик. - М.: Мир, 1971.