МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Виконання програми - реалізація мови програмуванняРозглянемо, як реалізується процес перекладу програми з мови високого рівня в таку форму, що може бути виконана-машиною (ЕОМ). Переклад програми з однієї мови на іншу називається трансляцією. Програма у своєму оригінальному вигляді називається вихідною програмою, а відтрансльована її версія – об'єктним кодом. Розрізняють транслятори двох типів: інтерполятори і компілятори ( часто останній тип отоджується з трансляторами взагалі). Інтерпретатори призначені для послідовного пооператорного перетворення кожної команди первинної програми в машинний код з одночасовим її виконанням. Машинна програма у повному обсязі при цьому не створюється. Виконання програми проходить досить повільно порівнянно з випадком компилляції. Цей вид трансляції рекомендуеться використовувать при наладці нових програмних продуктів. Компілятори, навпаки, призначені для формування повного завантажувального модуля по первинній програмі користувача. Це дозволяє відділити програму від середовища її розробки і в подальшому використовувати автономно. Процес трансляції складається з трьох етапів - лексичного аналізу, синтаксичного аналізу і генерації коду, що виконуються елементами транслятора, які звуться лексичним аналізатором, синтаксичним аналізатором і генератором коду (рис. 5.6)
**************************** Лексичний аналіз - це процес виділення окремих символьних Таким чином, лексичний аналізатор символ за символом зчитує текст вихідної програми, визначаючи, які групи символів утворюють самостійні одиниці тексту. Потім ці одиниці класифікуються, щоб з'ясувати, що вони собою являють - числа, слова, арифметичні оператори тощо. Як тільки одиницю тексту класифіковано, лексичний аналізатор генерує її бітовий образ, що зветься лексемою і передає його синтаксичному аналізатору. Синтаксичний аналізатор аналізує програму в термінах лексичних одиниць (лексем), а не окремих символів. Завданням синтаксичного аналізатора є об'єднання цих одиниць в оператори. Синтаксичний аналіз - це процес ідентифікації граматичної структури програми і роз-- пізнавання ролі кожного її компонента. Останнім етапом трансляції є генерація кодів - процес створення команд машинної мови, що імітують виконання операторів, розпізнаних синтаксичним аналізатором. Цей процес включає безліч різних аспектів, і один із яких - підвищення ефективності генерованого коду. Об'єктний код програми, отриманий у результаті її трансляції, хоча й записаний машиною мовою, але найчастіше ще не має тієї форми, яка необхідна для виконання машиною. Однією з причин цього є те, що багато засобів програмування дозволяють розробляти програми у вигляді окремих модулів, трансльованих у різний час (це сприяє наданню програмному забезпеченню модульної структури). Тому об'єктний код, отриманий у результаті окремого процесу трансляції, найчастіше являє собою усього лише певну складову частину програми, яка має бути пов'язана з іншими її частинами для вирішення завдань, що стоять перед усією системою в цілому.. Тому об'єктний код програми насправді являє собою програму машинною мовою, яка звичайно містить кілька недозволених посилань; цю програму необхідно пов'язати з іншими програмами, перш ніж можна буде одержати повноцінний виконуваний модуль. Пов'язування об'єктного коду програми з іншими модулями виконує програма, яка називається редактором зв'язків. Її завдання – зв'язати між собою кілька об'єктних модулів (отриманих у результаті попередніх незалежно виконаних процедур трансляцій) програм операційної системи й інше програмне забезпечення з метою одержання завершеного виконуваного модуля (який іноді називають завантажувальним модулем), що являє собою файл, розташований у зовнішній пам'яті машини. Нарешті, щоб виконати відтрансльовану програму, її завантажувальний модуль має бути розміщено в основній пам'яті машини за допомогою спеціальної програми, яка називається завантажувачем). Завантажувач звичайно є частиною програми-планувальника операційної системи. Важливість цього етапу є особливо великою в багатозадачних системах. У подібних системах будь-яка програма змушена використовувати пам'ять разом з іншими паралельно виконуваними процесами, причому набір паралельно виконуваних процесів змінюється при кожному виконанні програми. Тому точне розташування виділеної для певної програми ділянки пам'яті залишається невідомим, аж до її виклику І на виконання. Отже, підготовка програми мовою програмування високого рівня складається з трьох послідовних етапів: трансляції, зв'язування і завантаження, як показано на рис. 5.8.
****************************
Після виконання трансляції і зв'язування програму можна повторно завантажувати і виконувати без звертання до її вихідного тексту.
Читайте також:
|
||||||||
|