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

39. Інтерпретатори, адресація, представлення ідентифікаторів.

Ідентифікатор – це програма, яка транслює вихідну програму мовою високого рівня у внутрішнє представлення й виконує (інтерпретує) програму, представлену у внутрішній мові.

Інтерпретатори зручні у навчальних цілях і для тих мов, де багато часу йде на роботу системних програм(БД, матриць).

Переваги:

  1. Простота – не потрібно реалізовувати генерацію об’єктного коду.

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

  3. Можливість виключення інтерпретованих виразів у процес виконання програми.

Вик-ся при розробці нових і складних мов програмування.

Недоліки:

  1. Низька швидкість виконання програми.

  2. Викор. команд типу: <команда > <операції>

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

  1. Проблемою є представлення в стеці різних типів аргументів: константи, імена, адреси змінних (N елементів таблиці), вказівники.

В полі значення вказівника міститься адреса в таблиці символів.

Існує два види запису операторів. В польському записі операндами є додатні числа, адреси таблиці імен.

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

Другий спосіб – більш компактний, але перший швидший.

Крім того, потрібен механізм перевірки типів і механізм конвертації одних типів в інші.

Наприклад:

CV PV – конвертація вказівника в значення

CV PA – конвертація вказівника в адресу

CV AV – конвертація адреси в вказівник

Для збільшення ефективності виконання програми можна заздалегідь в польському виразі встановити процедуру конвертації типів.

Трасування.

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

Для діагностики помилок, можна встановити в польському записі номера операторів (номери рядків програми) або деякі фіксовані оператори, потрібні для від лагодження програми.

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

40 Компілятор компіляторів.

Система яка дозволяє створювати компілятори називається компілятором компіляторів.

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

Для цього потрібен деякий опис граматик:

  • граматика для сканера;

  • граматики для реалізації лексичного аналізатора.

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

У схемі синтаксично-керованого перекладу є ще 2 складові:

- умови застосувонняправил граматики;

- сематичні процедури;

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