i21edu/Docu.Знакомство/Как компилятор сообщает об ошибках.odc

Как компилятор сообщает об ошибках

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

Сделаем окно с модулем передним (например, кликом по его строке заголовка), и нажатием Ctrl+K (K  латинское) попытаемся его скомпилировать.
В журнале появится запись:
компилируется "Errors"
  3 ошибок найдено
3 ошибок не вполне по-русски, но зашивать русскую грамматику в Блэкбокс пока не хочется.
Одновременно в исходнике появятся три чёрных (тёмно-серых) перечёркнутых квадратика в тех местах, где компилятор увидит ошибки  это маркеры ошибок.
        . 
   окна Блэкбокса   строке состояния      : необъявленный идентификатор. , вместо Integer подразумевалось INTEGER (тип целочисленной переменный), а большие и маленькие буквы в Компонентном Паскале различаются, поэтому Integer и INTEGER воспринимаются компилятором как разные слова: INTEGER он знает, а Integer  нет. Подобные ошибки поначалу делают те, кто переходит с Турбо Паскаля.
Можно прочитать это же сообщение и по-другому: двойной клик по квадрату раскроет его и покажет сообщение об ошибке. 
Ещё один двойной клик закроет ошибку, но беспокоиться ни об этом, ни об удалении маркеров ошибок не надо: компилятор сам уберёт старые маркеры при следующей компиляции.
Точно так же можно посмотреть остальные маркеры. Все маркеры показывают одинаковую ошибку: необъявленный идентификатор.
      :          ,      ,    .
(см. заповеди)
Чтобы исправить первую ошибку, нужно превратить Integer в INTEGER. Простейший способ: дважды кликнуть по Integer и нажать Shift+F5.
Сразу скомпилируем нажатием Ctrl+K (компилируем после каждого исправления, следя, чтобы окно с программой было передним при выдаче команды компиляции; если нечаянно произошла попытка скомпилировать этот документ, нужно просто нажать Ctrl+Z  отмену).
Останется две ошибки, курсор стоит после первой из них.
Опять ошибка необъявленный идентификатор. В данном случае заглавная буква O стоит вместо нуля. Исправим букву О на цифру 0 (чёрный квадратик стирается как обычная буква: достаточно дважды нажать клавишу Backspace и затем цифру 0). И тут же снова нажмём Ctrl+K.
Останется ещё одна ошибка необъявленный идентификатор. В данном случае название процедуры Int (в Блэкбоксе принято соглашение, чтобы названия процедур начинать с заглавной буквы). Исправим INT на Int и снова нажмём Ctrl+K.
Появится ещё одна  уже четвертая  ошибка, которую компилятор раньше не смог увидеть, сбиваясь из-за остальных: теперь это ошибка пропущена ";". 
Действительно, два вызова процедур должны быть разделены литерой ";". 
Вставим её  и нажмём Ctrl+K. В Рабочем журнале появились два числа  40 и 4, где 4  это размер блока глобальных переменных модуля в байтах (наша одинокая 32-битная переменная x), а 40  размер машинного кода в байтах  не в килобайтах!
Наконец, чтобы выполнить программу, нажмём Ctrl+F9 (передним окном должно быть окно с программой).
В журнале появится строчка от компилятора, другая строчка от загрузчика модулей (не обращаем внимания), а также строчка с нашим нулём  последняя.

Важно!      предупреждения, ошибки, критические ошибки  ..,    :          .    ,     ,      :  ,  предупреждения,   ,      , появившиеся как отдалённые последствия предупреждений    ,        (.   ы- -5 ).