Сторінка
2
1.4. Мова Паскаль, трансляція та системи програмування
Система програмування робить комп'ютер зручним. Для цього вона пропонує мову й різні послуги, які фактично є програмами, що викликаються та керуються мовними засобами.
Ф.П.Брукс мол., 1975 р. Кожний комп'ютер має деяку систему команд, які може виконати його ЦП. Це і є машинна мова. Вона зовсім не схожа на людську. Програмувати в ній дуже незручно, тому що треба знати численні деталі устрою комп'ютера та писати дуже довгі послідовності простеньких машинних команд. Але виявляється, що майже завжди можна програмувати в іншій, не машинній, мові. За кілька десятиліть використання комп'ютерів було створено сотні мов, за допомогою яких можна програмувати, не знаючи нічого про устрій комп'ютера і систему його команд. У цих мовах немає машинних команд; їх "команди" містять звичні слова, своєю структурою схожі на людські фрази і ніяк не відбивають деталей устрою комп'ютера. У цих мовах комп'ютер та його дії подано в більш загальному вигляді. Ці мови мають вищий рівень абстракції опису дій комп'ютера, тому називаються мовами високого рівня. Відповідно машинні мови називаються мовами низького рівня. Однією з найпопулярніших мов високого рівня стала мова Паскаль, або Pascal. Програми в цій мові будемо називати Паскаль-програмами. Ось найкоротша з них: program A(input, output); begin end. Переклад цього тексту з англійської слово в слово такий: програма A(введення, виведення); початок кінець. Слово A перед дужками є ім'ям цієї програми. Віддаючи данину традиції ознайомлення з мовами програмування, наведемо також Паскаль-програму, за якою комп'ютер "вітає світ": program Hello(input, output); begin writeln ( ' Вітаю, Світе! ' ) end. Вітання задається, як очевидно, написом writeln ( ' Вітаю, Світе! ' ). Слово writeln є скороченням від "write line", тобто "написати рядок". Комп'ютер не займається виконанням Паскаль-програм – можна навіть сказати, що він "не розуміє" цієї мови. Для виконання Паскаль-програму треба перекласти на мову машини. Цей переклад, або трансляцію в машинну мову, робить сам комп'ютер, виконуючи спеціальну програму перекладу – транслятор. У процесі трансляції Паскаль-програма читається з зовнішнього носія, за нею будується машинна програма й записується, як правило, у зовнішню пам'ять. Паскаль-програма являє собою початкові дані для побудови машинної програми (рис.1.4(а)). Обидві програми задають ті самі дії виконавця, тільки різними мовами. Як ми вже говорили, машинна програма завантажується в оперативну пам'ять і потім виконується (рис 1.4(б)). Наприклад, виконання машинної програми "вітання світу" веде до появи на екрані слів Вітаю, Світе! . Інший спосіб зробити Паскаль-програму "зрозумілою" комп'ютеру – інтерпретувати її. Це відбувається за виконання програми, яка називається інтерпретатором. Вхідні дані інтерпретатора – це Паскаль-програма й ті дані, що повинні читатися при її виконанні (рис.1.5). Інтерпретація програми полягає в тім, що дії, нею задані, відразу виконуються. Машинна програма при цьому не створюється. Транслятор (або інтерпретатор) є основною програмою в системі програмування – спеціальній системі програм. За їх допомогою програми, записані мовою високого рівня, запам'ятовуються в комп'ютері та перекладаються на машинну мову або інтерпретуються. Кажуть, що система програмування підтримує відповідну мову високого рівня, і що він є вхідним для неї. Існує багато систем, що підтримують мову Паскаль, але вхідні мови практично всіх їх мають відмінності від стандарту мови Паскаль, створеного Віртом, тобто є його діалектами. У даному посібнику в основному використовується "чистий" Паскаль, а при необхідності – діалект, що підтримується популярними системами програмування фірми Borland і називається Турбо Паскаль. В усіх операційних системах файли мають імена, що мають принаймні дві частини, власне ім'я та розширення, відокремлені крапкою. Паскаль-програми записуються, як правило, у файли з розширенням .pas, наприклад, a.pas. У результаті їх трансляції створюються файли з розширенням, як правило, .exe і тим самим ім'ям, наприклад, a.exe. Саме вони містять машинні програми. Задача 1.1.* Змусьте доступний Вам комп'ютер відтранслювати найкоротшу програму на мові Паскаль. Програма не задає ніяких дій комп'ютера, але довжина файла з машинною програмою не дорівнює нулю. Чому?
1 2