Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Виконання програми - реалізація мови програмування

Розглянемо, як реалізується процес перекладу програми з мови ви­сокого рівня в таку форму, що може бути виконана-машиною (ЕОМ). Переклад програми з однієї мови на іншу називається трансляцією. Програма у своєму оригінальному вигляді називається вихідною про­грамою, а відтрансльована її версія – об'єктним кодом.

Розрізняють транслятори двох типів: інтерполятори і компілятори ( часто останній тип отоджується з трансляторами взагалі).

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

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

Процес транс­ляції складається з трьох етапів - лексичного аналізу, синтаксичного аналізу і генерації коду, що виконуються елементами транслятора, які звуться лексичним аналізатором, синтаксичним аналізатором і генера­тором коду (рис. 5.6)

 

****************************

Лексичний аналіз - це процес виділення окремих символьних
рядків з тексту вихідної програми. Наприклад, символи «153» мають
інтерпретуватися транслятором не як сукупність цифр, що складаєть­
ся з одиниці, п'ятірки і трійки, а як єдине числове значення, яке дорів­
нює ста п'ятдесяти трьом

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

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

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

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


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

Нарешті, щоб виконати відтрансльовану програму, її завантажуваль­ний модуль має бути розміщено в основній пам'яті машини за допомо­гою спеціальної програми, яка називається завантажувачем). За­вантажувач звичайно є частиною програми-планувальника операційної системи. Важливість цього етапу є особливо великою в багатозадачних системах. У подібних системах будь-яка програма змушена використо­вувати пам'ять разом з іншими паралельно виконуваними процесами, причому набір паралельно виконуваних процесів змінюється при кожному виконанні програми. Тому точне розташування виділеної для пев­ної програми ділянки пам'яті залишається невідомим, аж до її виклику І на виконання. Отже, підготовка програми мовою програмування високого рівня складається з трьох послідовних етапів: трансляції, зв'язування і завантаження, як показано на рис. 5.8.

 

****************************

 

Після виконання трансляції і зв'язування програму можна повторно завантажувати і виконувати без звер­тання до її вихідного тексту.

 


Читайте також:

  1. II. Вимоги до складання паспорта бюджетної програми
  2. III. Виконання бюджету
  3. III. Вимоги безпеки під час виконання роботи
  4. III. Вимоги безпеки під час виконання роботи
  5. V. Виконання вправ на застосування узагальнювальних правил.
  6. Алгоритм створення тренінгової програми
  7. Альтернативна реалізація із вільним вихідним кодом – сервер SAMBA
  8. Анімаційні програми
  9. Антивірусні програми
  10. Аудит витрат на виробництво продукції, виконання робіт, надання послуг
  11. БАЖАННЯ і НАМІРИ - це миттєво виникаючі і досить часто змінюють один одного мотиваційні суб'єктивні стани, що відповідають змінюваних умов виконання дії.
  12. Безпека виконання робіт.




Переглядів: 1709

<== попередня сторінка | наступна сторінка ==>
Методи розробки алгоритмів і програм | Об'єктно-орієнтоване програмування

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.011 сек.