Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Compilers/ru: what changed

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

Title: Basic Pascal Tutorial/Compilers/ru

OldNewLine
1+<font size="5">Компиляторы Pascal</font>
2+
3+Pascal Compilers (author: Tao Yue, state: *changed*)
4+
5+Этот документ даст базовую информацию о компиляторах, а также предоставит ссылки на известные компиляторы Pascal и объяснит, как установить Free Pascal.
6+
7+### О компьютерных языках и компиляторах
8+
9+Когда говорят о компьютерных языках, обычно используется три основных термина:
10+
11+1. **Машинный язык** -- фактический бинарный код, который даёт основные инструкции центральному процессору (CPU) компьютера. Обычно это очень простые команды, такие, как сложение двух чисел или перемещение данных из одной области памяти в другую.
12+2. **Язык ассемблера** -- способ для людей программировать компьютеры напрямую без запоминания строк двоичных чисел. Существует однозначное соответствие с машинным кодом. Например, в машинном языке Intel x86 **ADD** и **MOV** - мнемоники для операций сложения и перемещения.
13+3. **Язык высокого уровня** -- позволяет людям писать сложные программы без расписывания каждого шага. Языками высокого уровня являются Pascal, C, C++, FORTRAN, Java, Visual Basic, C#, Java и многие другие. Одна команда в языке высокого уровня, вроде записи строки в файл, может транслироваться в десятки и даже сотни инструкций машинного языка.
14+
15+Микропроцессоры напрямую могут выполнять только программы на машинном языке. Программы на языке ассемблера собираются, или транслируются, в машинный язык. Точно так-же, программы, написанные на языках высокого уровня, таких, как Pascal, тоже должны быть переведены в машинный язык перед тем, как они могут быть выполнены. Выполнение этого перевода и есть компиляция программы.
16+
17+Программа, которая выполняет перевод (транслирует), называется **компилятор**. Это достаточно сложная программа, поскольку не только создаёт инструкции на машинном языке из строк кода, но часто ещё и оптимизирует код для более быстрого выполнения, добавляет код обработки ошибок и связывает код с подпрограммами, хранящимися в другом месте. Например, когда вы говорите компьютеру, чтобы он напечатал что-нибудь на экране, компилятор транслирует это в обращение к ранее написанному модулю. Ваш код потом должен быть связан с кодом, который предоставляет производитель компилятора, прежде чем получится исполняемая программа.
18+
19+С языками высокого уровня есть опять три основных термина для запоминания:
20+
21+1. **Исходный код** -- код, который вы пишете. Обычно файлы исходного кода имеют расширение, указывающее на используемый язык. Например, файлы исходного кода Pascal обычно заканчиваются **.pas**, а C++ - **.cpp**
22+2. **Объектный код** -- результат компиляции. Объектный код обычно включет только один модуль программы и пока не может быть выполнен, поскольку ещё не завершён. В системах DOS/Windows такие файлы обычно имеют расширение **.obj**
23+3. **Исполняемый код** -- конечный результат. Все модули объектного кода, необходимые для функционирования программы, связаны вместе. В системах DOS/Windows такие файлы обычно имеют расширение **.exe**
24+
25+### Ещё о компиляторах
26+
27+Стандартом де-факто для компиляторов Pascal под DOS и Windows является Borland Pascal. До того, как он вышел, большинство компиляторов Pascal были медленными и неповоротливыми, не соответствовали стандарту Pascal и стоили несколько сотен долларов. В 1984 году Borland представила Turbo Pascal, который продавался менее, чем за 100 долларов, компилировал на порядок быстрее существующих компиляторов и шёл с большим количеством исходного кода и утилит.
28+
29+Этот продукт был огромным успехом и был выдающимся в течении почти десятилетия. Но в 1990-х годах мир двигался в сторону Windows. В 1993 году вышла последняя, 7-я, версия Turbo Pascal для DOS. После этого спрос на DOS-программы резко упал и Borland (краткое время также известная как Inprise), направила свои усилия на выпуск сред разработки (IDE) и компиляторов для Windows (например, Delphi). Позже Borland продала свои компиляторы Embarcadero, которая продолжает регулярно обновлять Delphi.
30+
31+Этот учебник будет иметь дело только с программированием консольных приложений, где компьютер печатает строки данных на экран, а пользователь взаимодействует с программой с помощью клавиатуры. Цель учебника - научить, как программировать на Pascal. Изучив это, вы легко сможете посмотреть в справочнике или другой web-странице, и выбрать графическую или оконную систему по своему вкусу.
32+
33+Хотя старые коммерческие компиляторы 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)) создаёт хорошие компиляторы для современных операционных систем и новичкам будет гораздо легче использовать их.
34+
35+### Компиляторы с открытым исходным кодом
36+
37+Два основных проекта компиляторов с открытым исходным кодом:
38+
39+- [GNU Pascal](http://www.gnu-pascal.de)
40+- [Free Pascal](http://www.freepascal.org)
41+
42+Free Pascal обычно считается более дружественным для новичков и он во многом старается эмулировать Borland Pascal, но оба хорошо послужат для обучения Pascal.
43+
44+Поскольку большинство пользователей этого учебника будут работать под Windows, ниже дана краткая инструкция, как установить Free Pascal и дойти до места, где вы сможете откомпилировать программу в современной операционной системе Windows:
45+
46+1. Загрузите Win32-инсталлятор для Free Pascal с [Free Pascal download page](http://www.freepascal.org/download.var).
47+2. Запустите файл, который вы только что скачали, и пройдите через мастер установки Free Pascal.
48+3. Запустите Free Pascal, используя ярлык (по умолчанию он находится в Пуск -\> Free Pascal).
49+4. Наберите текст программы (см. программу "Hello, world." в [[Basic Pascal Tutorial/Hello, World/ru|следующем уроке]]).
50+5. Сохраните файл с помощью **File-Save As ...**
51+6. Запустите программу из меню **Run**. Это автоматически откомпилирует вашу программу, если вы внесли какие-либо изменения, а потом запустит программу. Это также запустит вашу программу без компиляции, если вы не вносили никаких изменений после предыдущей компиляции.
52+
53+С программами, которые не ожидают ввода от пользователя, вы увидите, как промелькнёт программа на чёрном экране. Но программа завершится в мгновение ока и вы вернётесь в среду разработки, не увидев результатов своей работы. Есть два способа обойти это:
54+
55+- Выберите **User screen** из меню **Debug**, чтобы увидеть результат работы программы.
56+- Добавляйте вызов **ReadLn** в конце каждой программы. Это заставит программу ждать нажатия пользователем клавиши **Enter** перед завершением программы и возвратом в IDE.
57+
58+<figure>
59+<img src="Userscreen.png" title="Userscreen.png" />
60+<figcaption>Userscreen.png</figcaption>
61+</figure>
62+
63+Обратите внимание, что файл **.exe** был создан в том-же каталоге, где вы сохранили свою программу. Это исполняемый файл. Вы можете пойти в Командную строку, сменить каталог и напрямую запустить этот исполняемый файл. Вы также можете сделать на нём двойной клик в Windows Explorer (программа по-прежнему быстро промелькнёт, если завершается без запроса ввода со стороны пользователя).
64+
65+### См. также
66+
67+- [[Control Pascal Tutorial]] - простой способ начать без небходимости инсталляции
68+- [[How to start]] - другой способ начать с инсталляцией
69+
70+---
71+*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