Головна

Компілятори та інтерпретатори

  1.  В. М. МАРКОВИЧ Лермонтов і його інтерпретатори 1 сторінка
  2.  В. М. МАРКОВИЧ Лермонтов і його інтерпретатори 2 сторінка
  3.  В. М. МАРКОВИЧ Лермонтов і його інтерпретатори 3 сторінка
  4.  В. М. МАРКОВИЧ Лермонтов і його інтерпретатори 4 сторінка

За допомогою мови програмування створюється не готова програма, а лише її частину тексту, що описує раніше розроблений алгоритм. Щоб отримати працюючу програму, треба цей текст або автоматично перевести в машинний код (для цього служать програми-компілятори) і потім використовувати окремо від початкового тексту, або відразу виконувати команди мови, зазначені в тексті програми (цим займаються програми-інтерпретатори).

Інтерпретатор бере черговий оператор мови з тексту програми, аналізує його структуру і потім відразу виконує (зазвичай після аналізу оператор транслюється в деякий проміжний уявлення або навіть машинний код для більш ефективного подальшого виконання). Тільки після того як поточний оператор успішно виконаний, інтерпретатор перейде до наступного. При цьому, якщо один і той же оператор повинен виконуватися в програмі багато разів, інтерпретатор щоразу буде виконувати його так, як ніби зустрів вперше. Внаслідок цього, програми, в яких потрібно здійснити великий обсяг повторюваних обчислень, можуть працювати повільно. Крім того, для виконання такої програми на іншому комп'ютері там також повинен бути встановлений інтерпретатор - адже без нього текст програми є просто набором символів.

По-іншому, можна сказати, що інтерпретатор моделює якусь віртуальну обчислювальну машину, для якої базовими інструкціями служать не елементарні команди процесора, а оператори мови програмування.

Компілятори повністю обробляють весь текст програми (він іноді називається вихідний код). Вони переглядають його у пошуках синтаксичних помилок (іноді кілька разів), виконують певний смисловий аналіз і потім автоматично переводять (Транслюють) на машинний мову - генерують машинний код. Нерідко при цьому виконується оптимізація з допомогою набору методів, що дозволяють підвищити швидкодію програми (наприклад, за допомогою інструкцій, орієнтованих на конкретний процесор, шляхом виключення непотрібних команд, проміжних обчислень і т. д.). В результаті закінчена програма виходить компактною і ефективною, працює в сотні разів швидше програми, виконуваної за допомогою інтерпретатора, і може бути перенесена на інші комп'ютери з процесором, що підтримує відповідний машинний код.

Основний недолік компіляторів - трудомісткість трансляції мов програмування, орієнтованих на обробку даних складної структури, часто заздалегідь невідомої або динамічно змінюється під час роботи програми. Тоді в машинний код доводиться вставляти безліч додаткових перевірок, аналізувати наявність ресурсів операційної системи, динамічно їх захоплювати і звільняти, формувати і обробляти в пам'яті комп'ютера складні об'єкти, що на рівні жорстко заданих машинних інструкцій здійснити досить важко, а для ряду задач практично неможливо.

За допомогою інтерпретатора, навпаки, допустимо в будь-який момент зупинити роботу програми, досліджувати вміст пам'яті, організувати діалог з користувачем, виконати як завгодно складні перетворення даних і при цьому постійно контролювати стан навколишнього програмно-апаратної середовища, завдяки чому досягається висока надійність роботи. Інтерпретатор при виконанні кожного оператора перевіряє безліч характеристик операційної системи і при необхідності максимально докладно інформує розробника про виникаючі проблеми. Крім того, інтерпретатор дуже зручний для використання в якості інструменту вивчення програмування, так як дозволяє зрозуміти принципи роботи будь-якого окремого оператора мови.

У реальних системах програмування перемішані технології та компіляції, і інтерпретації. У процесі налагодження програма може виконуватися по кроках, а результуючий код не обов'язково буде машинним - він навіть може бути вихідним кодом, написаним на іншій мові програмування (це істотно спрощує процес трансляції, але вимагає компілятора для кінцевого мови), або проміжним машіннонезавісімим кодом абстрактного процесора , який в різних комп'ютерних архітектурах виконуватиметься за допомогою інтерпретатора або компілюватиметься в відповідний машинний код.




 Вправа 19.2. Вивчення прийомів форматування абзаців |  Вправа 19.3. створення гіперпосилань |  Вправа 19.4. Створення зображення і використання його на Web-сторінці |  Вправа 19.5. Прийоми форматування тексту |  Вправа 19.6. Прийоми створення списків |  Вправа 1 9.7. створення таблиць |  Вправа 19.8. Створення опису фреймів |  Вправа 19.9. Створення Web-документа за допомогою редактора FrontPage Express |  Абзацного відступу в документах HTML |  Машинний код процесора |

© um.co.ua - учбові матеріали та реферати