Compilers/ru

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) italiano (it) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 

Компиляторы Pascal

Pascal Compilers (author: Tao Yue, state: changed)

Этот документ даст базовую информацию о компиляторах, а также предоставит ссылки на известные компиляторы Pascal и объяснит, как установить Free Pascal.

О компьютерных языках и компиляторах

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

  1. Машинный язык -- фактический бинарный код, который даёт основные инструкции центральному процессору (CPU) компьютера. Обычно это очень простые команды, такие, как сложение двух чисел или перемещение данных из одной области памяти в другую.
  2. Язык ассемблера -- способ для людей программировать компьютеры напрямую без запоминания строк двоичных чисел. Существует однозначное соответствие с машинным кодом. Например, в машинном языке Intel x86 ADD и MOV - мнемоники для операций сложения и перемещения.
  3. Язык высокого уровня -- позволяет людям писать сложные программы без расписывания каждого шага. Языками высокого уровня являются Pascal, C, C++, FORTRAN, Java, Visual Basic, C#, Java и многие другие. Одна команда в языке высокого уровня, вроде записи строки в файл, может транслироваться в десятки и даже сотни инструкций машинного языка.

Микропроцессоры напрямую могут выполнять только программы на машинном языке. Программы на языке ассемблера собираются, или транслируются, в машинный язык. Точно так-же, программы, написанные на языках высокого уровня, таких, как Pascal, тоже должны быть переведены в машинный язык перед тем, как они могут быть выполнены. Выполнение этого перевода и есть компиляция программы.

Программа, которая выполняет перевод (транслирует), называется компилятор. Это достаточно сложная программа, поскольку не только создаёт инструкции на машинном языке из строк кода, но часто ещё и оптимизирует код для более быстрого выполнения, добавляет код обработки ошибок и связывает код с подпрограммами, хранящимися в другом месте. Например, когда вы говорите компьютеру, чтобы он напечатал что-нибудь на экране, компилятор транслирует это в обращение к ранее написанному модулю. Ваш код потом должен быть связан с кодом, который предоставляет производитель компилятора, прежде чем получится исполняемая программа.

С языками высокого уровня есть опять три основных термина для запоминания:

  1. Исходный код -- код, который вы пишете. Обычно файлы исходного кода имеют расширение, указывающее на используемый язык. Например, файлы исходного кода Pascal обычно заканчиваются .pas, а C++ - .cpp
  2. Объектный код -- результат компиляции. Объектный код обычно включет только один модуль программы и пока не может быть выполнен, поскольку ещё не завершён. В системах DOS/Windows такие файлы обычно имеют расширение .obj
  3. Исполняемый код -- конечный результат. Все модули объектного кода, необходимые для функционирования программы, связаны вместе. В системах DOS/Windows такие файлы обычно имеют расширение .exe

Ещё о компиляторах

Стандартом де-факто для компиляторов Pascal под DOS и Windows является Borland Pascal. До того, как он вышел, большинство компиляторов Pascal были медленными и неповоротливыми, не соответствовали стандарту Pascal и стоили несколько сотен долларов. В 1984 году Borland представила Turbo Pascal, который продавался менее, чем за 100 долларов, компилировал на порядок быстрее существующих компиляторов и шёл с большим количеством исходного кода и утилит.

Этот продукт был огромным успехом и был выдающимся в течении почти десятилетия. Но в 1990-х годах мир двигался в сторону Windows. В 1993 году вышла последняя, 7-я, версия Turbo Pascal для DOS. После этого спрос на DOS-программы резко упал и Borland (краткое время также известная как Inprise), направила свои усилия на выпуск сред разработки (IDE) и компиляторов для Windows (например, Delphi). Позже Borland продала свои компиляторы Embarcadero, которая продолжает регулярно обновлять Delphi.

Этот учебник будет иметь дело только с программированием консольных приложений, где компьютер печатает строки данных на экран, а пользователь взаимодействует с программой с помощью клавиатуры. Цель учебника - научить, как программировать на Pascal. Изучив это, вы легко сможете посмотреть в справочнике или другой web-странице, и выбрать графическую или оконную систему по своему вкусу.

Хотя старые коммерческие компиляторы Pascal часто доступны для скачивания (например, Turbo Pascal 5.5 - здесь: Borland Museum, а Symantec Think Pascal (Macintosh) - здесь: Free Pascal Compiler List), компьютеры с 1980-х и начала 1990-х годов ушли далеко вперёд. Мы больше не связаны именами файлов формата 8.3 в DOS или невытесняющей многозадачностью в Mac OS. Использование старого компилятора - это удовольствие в том-же смысле, что и запуск старой игры на эмуляторе. Но Движение за открытые исходные коды (Open-source movement) создаёт хорошие компиляторы для современных операционных систем и новичкам будет гораздо легче использовать их.

Компиляторы с открытым исходным кодом

Два основных проекта компиляторов с открытым исходным кодом:

Free Pascal обычно считается более дружественным для новичков и он во многом старается эмулировать Borland Pascal, но оба хорошо послужат для обучения Pascal.

Поскольку большинство пользователей этого учебника будут работать под Windows, ниже дана краткая инструкция, как установить Free Pascal и дойти до места, где вы сможете откомпилировать программу в современной операционной системе Windows:

  1. Загрузите Win32-инсталлятор для Free Pascal с Free Pascal download page.
  2. Запустите файл, который вы только что скачали, и пройдите через мастер установки Free Pascal.
  3. Запустите Free Pascal, используя ярлык (по умолчанию он находится в Пуск -> Free Pascal).
  4. Наберите текст программы (см. программу "Hello, world." в следующем уроке).
  5. Сохраните файл с помощью File-Save As ...
  6. Запустите программу из меню Run. Это автоматически откомпилирует вашу программу, если вы внесли какие-либо изменения, а потом запустит программу. Это также запустит вашу программу без компиляции, если вы не вносили никаких изменений после предыдущей компиляции.

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

  • Выберите User screen из меню Debug, чтобы увидеть результат работы программы.
  • Добавляйте вызов ReadLn в конце каждой программы. Это заставит программу ждать нажатия пользователем клавиши Enter перед завершением программы и возвратом в IDE.


Userscreen.png


Обратите внимание, что файл .exe был создан в том-же каталоге, где вы сохранили свою программу. Это исполняемый файл. Вы можете пойти в Командную строку, сменить каталог и напрямую запустить этот исполняемый файл. Вы также можете сделать на нём двойной клик в Windows Explorer (программа по-прежнему быстро промелькнёт, если завершается без запроса ввода со стороны пользователя).

См. также

  • Control Pascal Tutorial - простой способ начать без небходимости инсталляции
  • How to start - другой способ начать с инсталляцией
 ◄   ▲   ►