Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8_Vsi_razom.doc
Скачиваний:
3
Добавлен:
10.09.2019
Размер:
347.65 Кб
Скачать

2.Поняття транслятора, компілятора, інтерпретатора, автокоду, асемблера.

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

Автокод- засіб ,яка близька до маш. мови більшість команд автокоду точне, символьне представлення команд машини.

Асемблер-програма, яка переводить вихідну програму яка написана на AutoCod, або мовою Асемблер в обєктний код.

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

3. Логічна стуруктура компілятора.

Початкова програма

Компілятор

Внутрішнє представлення програми

Аналіз

символи

Синтаксис і семантичний аналізатор

Підготовка до генерації програми і оптимізація

Генерація команд

Інформаційна таблиця

Таблиці символів, імен констант

Таблиця циклів

Таблиці переходів, адрес

Об’єктна програма

сканер

4.Основні частини компілятора.

На вході сканера є ланцюг символів деякого алфавіту. При цьому деякі комбінації символів розглядаються як 1 обєкт.

Лексичний аналізатор групує термінальні символи в синтаксичні обєкти-лексеми.

В найпростішому випадку лексема – це пара вигляду тип. лексеми

Задача виділення лексеми з заг. потоку є нетривіальноюі залежить від отр. мови. Є 2 основних типи лексичних аналізаторів: прямі та непрямі.

5Лексичний аналіз роботи з таблицями

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

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

Результатом роботи лексичного аналізатора є потік лексем що еквів. поч. тексту програми.

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

6. Синтаксичний та семантичний аналіз, дерева

Синтаксичний аналіз(СА) – процес в якому досліджує ланцюжок лексем і встановлює чи задовольняє цей ланцюг структурним умовам, які явно сформульовані у визначені синтаксису мови. Це найменша частина компілятора. СА розділяє вихідну програму (лексеми) на складові частини, формує вн. Представлення, заносить інформацію в вікно символів і інші вікна. При цьому здійснюється синтаксичний і семантичний аналіз програми. Старається відокремити синтаксис від семантичного на скільки це можливо, коли синтаксичний аналіз розпізнає конструкцію вих.. мови, то викликається семантична процедура, яка контролює цю конструкцію, заносить інформацію в потрібне місце, перев. Відпов. Типів, дублювання визначень і т.д. Індексний запис є незручний для операторної обробки. Альтернативою до інткс. Є інфіксна форма запису:

  1. Префіксна

  2. Постфіксна(оператори записуються перед операцією)

  3. Префіксна(оператори записуються після операції)

5+3*8

Постфіксна 5,3,8,*,+

5,24,+

29

П рефіксний 5,3,8,*,+ 8,8,* 8*8=64

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

Дерево, як спискова структура дозволяє творчо і просто й ефективно будувати внутрішнє представлення програм. Використовують типи виводу, які створюють синтаксис розпізнавачем. В синтаксичних деревах внутрішні вузли (вершини) є операціями, а листки є операндами. Листки зв’язані із вікнами ідентифікаторів. Структура синтаксичного дерева відображає синт. Мови програми, якою вона написана. С.дерева можуть бути побудовані для декларативної частин програми. В цьому вип..оператор дерева не вим. Ств. Область коду, а несуть інформацію для роботи компілятора. Як дереві відповідають послідовність операцій з якої випливає створення області коду говорять про дерева операцій. Д. операцій є формою представлення програми, якою зручно користуватись на етапах синтаксичного розбору тематичного аналізу і підготовити до ген. Коду коли немає необхідної програми з кодами програми.

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

І:= -1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]