Иллюстрированный самоучитель по Turbo Pascal

Сообщения об ошибках периода компиляции

Среда Турбо Паскаля дает исчерпывающую информацию о характере и месте обнаруженной компилятором ошибки. При обнаружении ошибки среда автоматически загружает в окно редактора исходный файл и помещает курсор около того места, где в исходном тексте обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение. После нажатия на любую клавишу (кроме F1) верхняя строка восстанавливает свой первоначальный вид и среда переходит к режиму редактирования.

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

Ниже приводятся сообщения об ошибках в том виде, в каком они появляются в верхней строке редактора, а также перевод сообщений справочной службы.

На экране после кода ошибки (цифры) нет точки, поэтому ее нет и в соответствующем месте текста.

1 Out of memory (Выход за границы памяти).

Компилятору не хватает памяти. Имеется ряд возможных решений этой проблемы:

  • если в опции COMPILE/DESTINATION установлено значение MEMORY, замените эту опцию на DISK;
  • если в опции OPTIONS/LINKER/LINK BUFFER установлено значение MEMORY, замените эту опцию т DISK;
  • если Вы используете резидентные обслуживающие программы, такие как SIDEKICK, NORTON, удалите их из памяти;
  • если Вы используете интегрированную среду TVRBO.EXE, то попробуйте воспользоваться компилятором ТРС.ЕХЕ – он занимает меньше памяти.

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

2 Identifier expected (Не указан идентификатор).

В этом месте должен находиться идентификатор. Возможно, Вы пытаетесь использовать в качестве идентификатора зарезервированное слово.

3 Unknown identifier (Неизвестный идентификатор).

Этот идентификатор не был описан.

4 Duplicate identifier (Двойной идентификатор).

Попытка дважды описать один и тот же идентификатор.

5 Syntax error (Синтаксическая ошибка).

В исходном тексте найден недопустимый символ. Возможно, Вы забыли заключить в апострофы строковую константу.

6 Error in real constant (Ошибка в вещественной константе).

Синтаксис констант вещественного типа описан в гл.4.

7 Error in integer constant (Ошибка в целой константе).

Синтаксис констант целого типа описан в гл.4. Учтите, что после целых действительных чисел, превышающих диапазон представления целых чисел (-2147483648..+2147483647), должны ставиться точка и ноль, например, 12345678912.0.

8 String constant exceeds line (Строковая константа превышает допустимые размеры).

Вероятно, Вы забыли поставить апостроф в конце строковой константы.

9 Too many nested files (Слишком много вложенных файлов).

Компилятор допускает не более пяти уровней вложенности включаемых файлов (т.е. в исходном файле есть ссылка на включаемый файл, в котором есть ссылка на еще один включаемый файл и т.д.).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.