Трансляція компіляція інтерпретація лінкування

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Санкт-Петербурзький державний університет

телекомунікацій імені професора М.А. Бонч-Бруєвича

Курсова робота

з дисципліни Інформатика

на тему:

Трансляція, лінкування, компіляція, інтерпретація

Виконала: студентка 1 курсу

Царигіна К.О.

Викладач: Левчук Ю.П.

2009

Зміст

Введення

Трансляція, компіляція, інтерпретація, лінкування

1. Трансляція. Компіляція. Інтерпретація

2. Лінкування

Висновок

Використана література

Введення

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

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

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

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

У процесі налагодження програми виділяються етапи:

  1. трансляція вихідного тексту програми;

  2. компонування програми;

  3. виконання програми з метою визначення логічних помилок;

  4. тестування програми

Трансляція, компіляція, інтерпретація, лінкування

1. Трансляція. Компіляція. Інтерпретація

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

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

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

Види трансляторів

Перекладачі поділяють на:

  • Адресний. Функціональне пристрій, що перетворює віртуальний адреса в реальну адресу

  • Діалоговий. Забезпечує використання мови програмування в режимі поділу часу.

  • Багатопрохідної. Формує об'єктний модуль за кілька переглядів початкової програми.

  • Зворотний. Те ж, що детранслятор (декомпілятор, дізассемблер).

  • Однопрохідної. Формує об'єктний модуль за один послідовний перегляд вихідної програми.

  • Оптимізуючий. Виконує оптимізацію коду в створюваному об'єктному модулі.

  • Синтаксично-орієнтований (синтаксично-керований). Отримує на вхід опис синтаксису і семантики мови і текст на описаному мовою, яка і транслюється у відповідності із заданим описом.

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

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

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

Види компіляції

  • Пакетна. Компіляція кількох вихідних модулів в одному пункті завдання.

  • Прогресивний. Те ж, що і інтерпретація.

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

Малюнок 5. Компіляція розміченого документа

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

Типи інтерпретаторів

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

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

Алгоритм роботи простого інтерпретатора

  1. прочитати інструкцію;

  2. проаналізувати інструкцію і визначити відповідні дії;

  3. виконати відповідні дії;

  4. якщо не досягнуто умова завершення програми, прочитати таку інструкцію і перейти до пункту 2.

Малюнок 5. Схема інтерпретації тексту Ю. Лотмана

2. Лінкування

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

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

Для зв'язування модулів компонувальник використовує таблиці імен, створені компілятором в кожному з об'єктних модулів. Такі імена можуть бути двох типів:

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

  • Невизначені або імпортовані імена - функції та змінні, на які посилається модуль, але не визначає їх усередині себе

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

Малюнок 5. Наочна схема лінкування

Існує два способи створення лінкування:

Малюнок 5. Схема «Кільце»

Малюнок 5. Схема «Ялинка»

Висновок

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

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

Використана література

  • Роберт У. собівартість. Основні концепції мов програмування

  • Вольфенгаген В. Е. Конструкції мов програмування.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
34.2кб. | скачати


Схожі роботи:
Трансляція тексту
Створення компіляція та налагодження простого додатка
Інтерпретація фотоефекту
Квантова механіка її інтерпретація
Інтерпретація показників електрокардіограми
Копенгагенська інтерпретація квантової теорії
Нова інтерпретація теорії відносності
Криві Енгеля і їх нова інтерпретація
Семантична інтерпретація стародавніх зображень
© Усі права захищені
написати до нас