- •4.Основні частини компілятора.
- •5Лексичний аналіз роботи з таблицями
- •6. Синтаксичний та семантичний аналіз, дерева
- •7. Польський запис, тетради.
- •8. Формальне визначення мови, операції над мовами.
- •9. Граматики
- •11.Регулярний вираз
- •12) Нормальна форма Бекуса-Наура
- •13. Ієрархія Хомського
- •14. Регулярні граматики.
- •15. Скінченні автомати
- •16. Детерміновані і недетерміновані кінцеві автомати.
- •18. Побудова детермінованих кінцевих автоматів за недетермінованими кінцевими автоматами.
- •19. Програмування сканера.
- •20. Таблиці символів, хеш-функції, хеш-адресація
- •21. Колізія, ре хешування
- •23.Контекстно-выльны граматики.
- •24. Синтаксично-керований переклад
- •25. Переклад інфіксної форми запису у польську
- •26. Алгоритм синтаксично-керованого перекладу:
- •27. Автомати з магазинною пам’яттю
- •28. Операторні граматики
- •29.Алгоритм розборуоператорних грамматик.
- •37. Оптимізація булевих виразів, циклів.
- •38. Генерація коду. Скп на мову Асамблер.
- •39. Інтерпретатори, адресація, представлення ідентифікаторів.
- •40 Компілятор компіляторів.
- •41 Генератор лексичних аналізаторів.(lex)
- •42. Генератор синтаксичних аналізаторів.
- •43. Приклади застосування генераторыв.
39. Інтерпретатори, адресація, представлення ідентифікаторів.
Ідентифікатор – це програма, яка транслює вихідну програму мовою високого рівня у внутрішнє представлення й виконує (інтерпретує) програму, представлену у внутрішній мові.
Інтерпретатори зручні у навчальних цілях і для тих мов, де багато часу йде на роботу системних програм(БД, матриць).
Переваги:
Простота – не потрібно реалізовувати генерацію об’єктного коду.
Зручність і простота налагодження програми, у цьому випадку доступні всі внутрішні структури, зручне трасування, відстеження звертань до міток і змінних,
Можливість виключення інтерпретованих виразів у процес виконання програми.
Вик-ся при розробці нових і складних мов програмування.
Недоліки:
Низька швидкість виконання програми.
Викор. команд типу: <команда > <операції>
Найбільш ефективною внутрішньою формою представлення є польський запис.
Проблемою є представлення в стеці різних типів аргументів: константи, імена, адреси змінних (N елементів таблиці), вказівники.
В полі значення вказівника міститься адреса в таблиці символів.
Існує два види запису операторів. В польському записі операндами є додатні числа, адреси таблиці імен.
Можна розрізнити типи даних використовуючи технологію з Байт кодом, тобто перед елементом записувати байт, що вказує та тип даних, або тип даних тримати в таблиці імен, а в польському записі будуть операнди.
Другий спосіб – більш компактний, але перший швидший.
Крім того, потрібен механізм перевірки типів і механізм конвертації одних типів в інші.
Наприклад:
CV PV – конвертація вказівника в значення
CV PA – конвертація вказівника в адресу
CV AV – конвертація адреси в вказівник
Для збільшення ефективності виконання програми можна заздалегідь в польському виразі встановити процедуру конвертації типів.
Трасування.
Трасування легко включити, якщо встановити відповідний прапорець в таблиці змінних, а потім при звертанні до змінних вивести відповідне значення.
Для діагностики помилок, можна встановити в польському записі номера операторів (номери рядків програми) або деякі фіксовані оператори, потрібні для від лагодження програми.
Як правило, інтерпретатор – це деяка програма, яка створює деякі проблем з мобільність програм. Є так звані «сховані» або неявні інтерпретатори, де формується файл, який містить в собі інтерпретатор.
40 Компілятор компіляторів.
Система яка дозволяє створювати компілятори називається компілятором компіляторів.
Автоматизуються всі ті речі, які можуть бути компільвані, це стосується в першу чергу регулярної граматики, використовуючи яку можна написати універсальну процедуру.
Для цього потрібен деякий опис граматик:
граматика для сканера;
граматики для реалізації лексичного аналізатора.
Ці описи можна зберігати в деякому файлі, таким чином матимем спеціальну вхідну мову – мову опису компілятора, але звідси не можна отримати цілого компілятора.
У схемі синтаксично-керованого перекладу є ще 2 складові:
- умови застосувонняправил граматики;
- сематичні процедури;