Санкт-Петербурзький державний університет
телекомунікацій імені професора М.А. Бонч-Бруєвича
Курсова робота
з дисципліни Інформатика
на тему:
Трансляція, лінкування, компіляція, інтерпретація
Виконала: студентка 1 курсу
Царигіна К.О.
Викладач: Левчук Ю.П.
2009
Зміст
Введення
Трансляція, компіляція, інтерпретація, лінкування
1. Трансляція. Компіляція. Інтерпретація
2. Лінкування
Висновок
Використовувана література
Введення
Велика частина роботи програмістів пов'язана з написанням вихідного коду, тестуванням і налагодженням програм на одній з мов програмування. Різні мови програмування підтримують різні стилі програмування. Єдина мова, безпосередньо виконуваний процесором - це машинний мову (також званий машинним кодом ). Спочатку всі програмісти опрацьовували програми в машинному коді, але зараз ця важка робота вже не робиться. Замість цього програмісти пишуть вихідний код на мові програмування високого рівня, і комп'ютер (використовуючи компілятор, інтерпретатор або асемблер) транслює його, в один або декілька етапів, уточнюючи всі деталі, у машинний код, готовий до виконання на цільовому процесорі. Запис вихідних текстів програм за допомогою мов програмування полегшує розуміння і редагування людиною. Цьому, зокрема, допомагають коментарі, допустимі в синтаксисі більшості мов. Для виконання на комп'ютері готовий текст програми перетворюється (компілюється) в машинний код. Деякі мови програмування дозволяють обходитися без попередньої компіляції програми і переводять її в інструкції машинного коду безпосередньо під час виконання. Цей процес називається динамічною компіляцією, і він дозволяє домогтися більшої переносимості програм між різними апаратними та програмними платформами при збереженні багатьох плюсів компіляції.
інтерпретованих програми, для яких, як правило, не застосовується процес компіляції і які інтерпретуються операційний системою або спеціальними програмами-інтерпретаторами, називаються скриптами або В«сценаріямиВ».
Технологія програмування задач розрізняється для операторних і функціональних мов програмування. Обмежимося розглядом питання для операторних мов. Тоді цей етап розбивається на два послідовних кроку - розробку алгоритму і налагодження програми.
Налагодження програми - це самий трудомісткий етап. Його мета - перевірка синтаксичної та логічної правильності програми, а також визначення того, що програма функціонує на всьому діапазоні допустимих даних.
В процесі налагодження програми виділяються етапи:
1. трансляція вихідного тексту програми;
2. компоновка програми;
3. виконання програми з метою визначення логічних помилок;
4. тестування програми
Трансляція, компіляція, інтерпретація, лінкування
1. Трансляція. Компіляція. Інтерпретація
Трансляція програми - перетворення програми, представленої на одній з мов програмування, в програму на іншій мові і, в певному сенсі, рівносильну першою. При трансляції виконується переклад програми, зрозумілої людині, на мову, зрозумілу комп'ютеру. Виконується спеціальними програмними засобами (транслятором).
Транслятори реалізуються у вигляді компіляторів або інтерпретаторів. З точки зору виконання роботи компілятор і інтерпретатор істотно розрізняються. Якщо мета трансляції - перетворення всього вихідного тексту на внутрішній мову комп'ютера (тобто отримання деякого нового коду) і тільки, то така трансляція називається також компіляцією . Оригінальний текст називається також вихідною програмою або вихідним модулем, а результат компіляції - Об'єктним кодом або об'єктним модулем. Якщо ж трансляції піддаються окремі оператори вихідних текстів і при цьому отримані коди відразу виконуються, така трансляція називається інтерпретацією . Оскільки трансляція виконується спеціальними програмними засобами (трансляторами), останні носять назву компілятора або інтерпретатора, відповідно.
Мета трансляції - перетворити текст з однієї мови на іншу, який зрозумілий адресату тексту. У разі програм-трансляторів, адресатом є технічне пристрій (процесор) або програма-інтерпретатор.
Види трансляторів
Транслятори підрозділяють на:
В· Адресний . Функціональне пристрій, що перетворює віртуальний адреса в реальну адресу
В· Діалоговий . Забезпечує використання мови програмування в режимі поділу часу.
В· багатопрохідних . Формує об'єктний модуль за кілька переглядів початкової програми.
В· Зворотний . Те ж, що детранслятор (Декомпілятор, дізассемблер).
В· однопрохідні . Формує об'єктний модуль за один послідовний перегляд вихідної програми.
В· Оптимізуючий . Виконує оптимізацію коду в створюваному об'єктному модулі.
В· Синтаксично-орієнтований (Синтаксично-керований) . Отримує на вхід опис синтаксису і семантики мови і текст на описаному мовою, який і транслюється у відповідності із заданим описом.
В· Тестовий . Набір макрокоманд мови ассемблера, що дозволяють задавати різні налагоджувальні процедури в програмах, складених на мові асемблера
Компіляція - перетворення програмою-компілятором вихідного тексту програми, написаного на мові високого рівня в машинний мову, у мову, близьке до машинного, або в об'єктний модуль. Результатом компіляції є об'єктний файл з необхідними зовнішніми посиланнями для компонувальника.
Компілятор читає всю програму цілком, робить її переклад і створює закінчений варіант програми на машинній мові, який потім і виконується.
Види компіляції
В· Пакетна . Компіляція декількох вихідних модулів в одному пункті завдання.
В· Построчная . Те ж, що і інтерпретація.
В· Умовна . Компіляція, при якій трансльований текст залежить від умов, заданих у вихідній програмі. Так, в Залежно від значення деякої константи, можна включати або вимикати трансляцію частини тексту програми.
Малюнок 1. Компіляція розміченого документа
Інтерпретація - процес безпосереднього покомандного виконання програми без попередньої компіляції, В«на льотуВ»; у більшості випадків інтерпретація набагато повільніше роботи вже скомпілювати програму, але не вимагає витрат на компіляцію, що у разі невеликих програм може підвищувати загальну продуктивність.
Типи інтерпретаторів
Простий інтерпретатор аналізує і тут же виконує (власне інтерпретація) програму покомандно (або порядково), по мірі надходження її вихідного коду на вхід інтерпретатора. Його достоїнство - миттєва реакція. Недолік - такий інтерпретатор виявляє помилки в тексті програми лише при спробі виконання команди (або рядка) з помилкою.
Інтерпретатор компілюються типу - це система з компілятора, переводящего вихідний код програми в проміжне представлення, наприклад, в байт-код або p-код, і власне інтерпретатора, який виконує отриманий проміжний код (так звана віртуальна машина). Його достоїнство - більшу швидкодію виконання програм (за рахунок виносу аналізу вихідного коду в окремий, разовий прохід, і мінімізації цього аналізу в інтерпретаторі). Недоліки - більша вимога до ресурсів та вимога на коректність вихідного коду.
Алгоритм роботи простого інтерпретатора
1. прочитати інструкцію;
2. проаналізувати інструкцію і визначити відповідні дії;
3. виконати відповідні дії;
4. якщо не досягнуто умова завершення програми, прочитати наступну і...