Поточний час:
Сьогодні 20 січня, субота 2018 рік
Стрічка RSS

Введіть ваш Е-mail:

Zura-Blog 3 роки 1 місяць 1 день

Ваш ip адрес:54.226.41.91

Доброго дня!
Ви обновили сторінку в 13 : 16
Статистика

Кількість публікацій на блозі: 372
Кількість коментарів на блозі: 102
Кількість категорій на блозі: 17
Кількість міток на блозі: 28

Zura – Blog
Яндекс.Метрика UA TOP Bloggers

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

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

Щоб отримати працюючу програму, потрібно текст або автоматично перевести в машинний код, для цього і служать програми – компілятори, і потім використовувати окремо від джерела тексту, або зразу виконати команди мови, вказані в тексті програми, цим займаються програми – інтерпретатори.

Інтерпретатор по черзі аналізує кожен оператор із тексту програми. Якщо знаходиться синтатична помилка, то виконання програми припиняється, і видається відповідне повідомлення. Правильний оператор зразу ж виконується. Тільки після того як даний оператор успішно виконаний, інтерпретатор перейде до аналізу і виконанню наступного.

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

Інтерпретатор не створює виконавчий код всієї програми. І з машини на машину програма переноситься в виді текстового файлу на компютерні мові.

Компілятори повністю обробляють весь текст програми. Вони продивляються його в пошуках синтатичних помилок, деколи декілька раз, виконують визначений аналіз, і потім автоматично переводять на машинну мову — генерують машинний код.  

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

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

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

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

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

Режим інтерпретації прискорює і спрощує відладку, а при компіляції створюється швидкий і ефективний початковий код.

Інтегровані системи

Для створення програми як за звичай потрібні

  1. текстовий редактор

  2. компілятор

  3. редактор звязків

  4. бібліотеки функцій

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

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

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

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

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

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

Виконуючий код — це закінчена програма, яку можна запустити на любому сумісному компютері, де встановлена операційна система, для якої ця програма створювалась. Як правило кінцевий файл має розширення .EXE і .COM Раньше всі етапи приходилось проводити окремо, передаючи файли від одної програми до іншої. На даний час використовуються інтегровані системи програмування.

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

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

В сучасних інтегрованих системах присутній ще один компонент — відладник (рус “отладчик”). який дозволяє аналізувати роботу програми під час її виконання. З його допомогою можна послідовно виконувати окремі оператори тексту крок за кроком, спостерігаючи при тому, як міняється значення різних змінних.

Без  “отладчик” розробити крупний додаток дуже складно. На цьому все до зустрічі.

Leave a Reply

Your email address will not be published. Required fields are marked *