Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Compilers/ru: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-<font size="5">Компиляторы Pascal</font>
1+Компиляторы Pascal
22
33Pascal Compilers (author: Tao Yue, state: *changed*)
44
55Этот документ даст базовую информацию о компиляторах, а также предоставит ссылки на известные компиляторы Pascal и объяснит, как установить Free Pascal.
66
77### О компьютерных языках и компиляторах
88
99Когда говорят о компьютерных языках, обычно используется три основных термина:
1010
11111. **Машинный язык** -- фактический бинарный код, который даёт основные инструкции центральному процессору (CPU) компьютера. Обычно это очень простые команды, такие, как сложение двух чисел или перемещение данных из одной области памяти в другую.
12122. **Язык ассемблера** -- способ для людей программировать компьютеры напрямую без запоминания строк двоичных чисел. Существует однозначное соответствие с машинным кодом. Например, в машинном языке Intel x86 **ADD** и **MOV** - мнемоники для операций сложения и перемещения.
13133. **Язык высокого уровня** -- позволяет людям писать сложные программы без расписывания каждого шага. Языками высокого уровня являются Pascal, C, C++, FORTRAN, Java, Visual Basic, C#, Java и многие другие. Одна команда в языке высокого уровня, вроде записи строки в файл, может транслироваться в десятки и даже сотни инструкций машинного языка.
1414
1515Микропроцессоры напрямую могут выполнять только программы на машинном языке. Программы на языке ассемблера собираются, или транслируются, в машинный язык. Точно так-же, программы, написанные на языках высокого уровня, таких, как Pascal, тоже должны быть переведены в машинный язык перед тем, как они могут быть выполнены. Выполнение этого перевода и есть компиляция программы.
1616
1717Программа, которая выполняет перевод (транслирует), называется **компилятор**. Это достаточно сложная программа, поскольку не только создаёт инструкции на машинном языке из строк кода, но часто ещё и оптимизирует код для более быстрого выполнения, добавляет код обработки ошибок и связывает код с подпрограммами, хранящимися в другом месте. Например, когда вы говорите компьютеру, чтобы он напечатал что-нибудь на экране, компилятор транслирует это в обращение к ранее написанному модулю. Ваш код потом должен быть связан с кодом, который предоставляет производитель компилятора, прежде чем получится исполняемая программа.
1818
1919С языками высокого уровня есть опять три основных термина для запоминания:
2020
21211. **Исходный код** -- код, который вы пишете. Обычно файлы исходного кода имеют расширение, указывающее на используемый язык. Например, файлы исходного кода Pascal обычно заканчиваются **.pas**, а C++ - **.cpp**
22222. **Объектный код** -- результат компиляции. Объектный код обычно включет только один модуль программы и пока не может быть выполнен, поскольку ещё не завершён. В системах DOS/Windows такие файлы обычно имеют расширение **.obj**
23233. **Исполняемый код** -- конечный результат. Все модули объектного кода, необходимые для функционирования программы, связаны вместе. В системах DOS/Windows такие файлы обычно имеют расширение **.exe**
2424
2525### Ещё о компиляторах
2626
2727Стандартом де-факто для компиляторов Pascal под DOS и Windows является Borland Pascal. До того, как он вышел, большинство компиляторов Pascal были медленными и неповоротливыми, не соответствовали стандарту Pascal и стоили несколько сотен долларов. В 1984 году Borland представила Turbo Pascal, который продавался менее, чем за 100 долларов, компилировал на порядок быстрее существующих компиляторов и шёл с большим количеством исходного кода и утилит.
2828
2929Этот продукт был огромным успехом и был выдающимся в течении почти десятилетия. Но в 1990-х годах мир двигался в сторону Windows. В 1993 году вышла последняя, 7-я, версия Turbo Pascal для DOS. После этого спрос на DOS-программы резко упал и Borland (краткое время также известная как Inprise), направила свои усилия на выпуск сред разработки (IDE) и компиляторов для Windows (например, Delphi). Позже Borland продала свои компиляторы Embarcadero, которая продолжает регулярно обновлять Delphi.
3030
3131Этот учебник будет иметь дело только с программированием консольных приложений, где компьютер печатает строки данных на экран, а пользователь взаимодействует с программой с помощью клавиатуры. Цель учебника - научить, как программировать на Pascal. Изучив это, вы легко сможете посмотреть в справочнике или другой web-странице, и выбрать графическую или оконную систему по своему вкусу.
3232
3333Хотя старые коммерческие компиляторы Pascal часто доступны для скачивания (например, Turbo Pascal 5.5 - здесь: [Borland Museum](http://dn.codegear.com/museum/), а Symantec Think Pascal (Macintosh) - здесь: [Free Pascal Compiler List](http://www.thefreecountry.com/compilers/pascal.shtml)), компьютеры с 1980-х и начала 1990-х годов ушли далеко вперёд. Мы больше не связаны именами файлов формата 8.3 в DOS или невытесняющей многозадачностью в Mac OS. Использование старого компилятора - это удовольствие в том-же смысле, что и запуск старой игры на эмуляторе. Но Движение за открытые исходные коды ([Open-source movement](https://en.wikipedia.org/wiki/Open-source_movement)) создаёт хорошие компиляторы для современных операционных систем и новичкам будет гораздо легче использовать их.
3434
3535### Компиляторы с открытым исходным кодом
3636
3737Два основных проекта компиляторов с открытым исходным кодом:
3838
3939- [GNU Pascal](http://www.gnu-pascal.de)
4040- [Free Pascal](http://www.freepascal.org)
4141
4242Free Pascal обычно считается более дружественным для новичков и он во многом старается эмулировать Borland Pascal, но оба хорошо послужат для обучения Pascal.
4343
4444Поскольку большинство пользователей этого учебника будут работать под Windows, ниже дана краткая инструкция, как установить Free Pascal и дойти до места, где вы сможете откомпилировать программу в современной операционной системе Windows:
4545
46461. Загрузите Win32-инсталлятор для Free Pascal с [Free Pascal download page](http://www.freepascal.org/download.var).
47472. Запустите файл, который вы только что скачали, и пройдите через мастер установки Free Pascal.
48483. Запустите Free Pascal, используя ярлык (по умолчанию он находится в Пуск -\> Free Pascal).
49494. Наберите текст программы (см. программу "Hello, world." в [[Basic Pascal Tutorial/Hello, World/ru|следующем уроке]]).
50505. Сохраните файл с помощью **File-Save As ...**
51516. Запустите программу из меню **Run**. Это автоматически откомпилирует вашу программу, если вы внесли какие-либо изменения, а потом запустит программу. Это также запустит вашу программу без компиляции, если вы не вносили никаких изменений после предыдущей компиляции.
5252
5353С программами, которые не ожидают ввода от пользователя, вы увидите, как промелькнёт программа на чёрном экране. Но программа завершится в мгновение ока и вы вернётесь в среду разработки, не увидев результатов своей работы. Есть два способа обойти это:
5454
5555- Выберите **User screen** из меню **Debug**, чтобы увидеть результат работы программы.
5656- Добавляйте вызов **ReadLn** в конце каждой программы. Это заставит программу ждать нажатия пользователем клавиши **Enter** перед завершением программы и возвратом в IDE.
5757
58-<figure>
59-<img src="Userscreen.png" title="Userscreen.png" />
60-<figcaption>Userscreen.png</figcaption>
61-</figure>
58+![](/wiki-images/1/19/Userscreen.png)
6259
6360Обратите внимание, что файл **.exe** был создан в том-же каталоге, где вы сохранили свою программу. Это исполняемый файл. Вы можете пойти в Командную строку, сменить каталог и напрямую запустить этот исполняемый файл. Вы также можете сделать на нём двойной клик в Windows Explorer (программа по-прежнему быстро промелькнёт, если завершается без запроса ввода со стороны пользователя).
6461
6562### См. также
6663
6764- [[Control Pascal Tutorial]] - простой способ начать без небходимости инсталляции
6865- [[How to start]] - другой способ начать с инсталляцией
6966
7067---
7168*From the Free Pascal wiki, page "Basic Pascal Tutorial/Compilers/ru", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history