ЗАСОБИ ВИКОНАННЯ ПРОГРАМИ

За допомогою мови програмування створюється текстовий варіант програми, яка описує розроблений алгоритм програми. Для отримання готової для виконання програми використовується технологія трансляції, яка реалізується за допомогою додаткової спеціальної програми. Така програма, яка називається транслятором, перетворює вихідну програму в машинні коди. Транслятори підрозділяються на асемблери, компілятори і інтерпретатори.

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

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

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

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

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

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

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

Крім того, при компіляції відсутня можливість оптимального кодування, оскільки програма виконується відразу оператор за оператором.

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

 
< Попер   ЗМІСТ   Наст >