1.1 Общие сведения

Мы начинаем знакомство с программированием на языке Pascal. Современная свободная среда программирования Free Pascal включает в себя текстовый редактор, отладчик и компилятор Free Pascal (fpc). Современный язык Pascal ведет свое начало от классического языка, который был разработан в конце 60-х годов XX века Николасом Виртом. Он разрабатывал этот язык как учебный язык для своих студентов. С тех пор Pascal, сохранив простоту и структуру языка, разработанного Н. Виртом, превратился в мощное средство программирования. С помощью современного языка Pascal можно производить простые расчеты, разрабатывать программы для проведения сложных инженерных и экономических вычислений. Компилятор Free Pascal является компилятором современного языка Pascal. Именно разработчики компилятора fpc занимаются развитием языка Pascal. На базе свободно распространяемого кроссплатформенного компилятора Free Pascal существует свободная среда визуального программирования Lazarus.

Разработку программы можно разбить на следующие этапы:

  1. Составление алгоритма решения задачи. Алгоритм — это описание последовательности действий, которые необходимо выполнить для решения поставленной задачи.

  2. Написание текста программы. Текст программы пишут на каком-либо языке программирования (например, на Pascal) и вводят его в компьютер с помощью текстового редактора.

  3. Отладка программы. Отладка программы — это процесс устранения ошибок из текста программы. Все ошибки делятся на синтаксические и логические. При наличии синтаксических ошибок (ошибок в написании операторов) программа не запускается. Подобные ошибки исправляются проще всего. Логические ошибки — это ошибки, при которых программа работает, но неправильно, выдавая не те результаты, которые ожидает разработчик или пользователь. Логические ошибки исправить сложнее, чем синтаксические, иногда для этого приходится переписывать отдельные участки программы, а иногда перерабатывать весь алгоритм.

  4. Тестирование программы. Тестирование программы — процесс выявления ошибок в ее работе.

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

Процесс перевода текста программы в машинный код называют трансляцией. Все трансляторы делятся на два класса:

  • интерпретаторы — трансляторы, которые переводят каждый оператор программы в машинный код и по мере перевода операторы выполняются процессором;

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

Если в качестве транслятора выступает компилятор, то процесс перевода текста программы в машинный код называют компиляцией. При переводе программы с языка Pascal в машинный код используются именно компиляторы2.

Рассмотрим основные этапы обработки компилятором fpc программы на языке Pascal.

  1. Компилятор анализирует, какие внешние библиотеки3 нужно подключить, разбирает текст программы на составляющие элементы, проверяет синтаксические ошибки и в случае их отсутствия формирует объектный код (в Windows — файл с расширением .obj, в Linux — файл с расширением .o). Получаемый на этом этапе двоичный файл (объектный код) не включает в себя объектные коды подключаемых библиотек.

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

Все рассматриваемые в учебном курсе примеры проверялись с помощью компилятора Free Pascal (fpc) версии 3.0.4 и интегрированной среды разработки визуальных приложений Lazarus версии 1.8.2.


1Как и на любом другом языке.

2Вместо термина «компилятор» в литературе иногда используют термин «транслятор компилирующего типа».

3В библиотеках языка Pascal хранится объектный (двоичный) код стандартных (таких, как sin(x), cos(x) и др.) функций и процедур языка.

Вы прошли 70% лекции
70%