
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лекции по СПО [укр. язык].DOC
X
- •Лекція №1. Тема 1: Компілятори, інтерпретатори, критерії розробки, основні етапи та їх взаємозв’язок . Основні поняття.
- •Критерії розробки трансляторів:
- •Етапи трансляції:
- •Фази трансляції:
- •Лекція №2. Тема 2 : Лексичний аналізатор та його основні задачі. Основна задача лексичного аналізатора.
- •Макроалгоритм та структури даних лексичного аналізатора.
- •Структура даних для розпізнавання роздільників та знаків операцій.
- •Таблиця зарезервованих слів.
- •Таблиця ідентифікаторів.
- •Таблиця типів.
- •Таблиця типів, враховуючи блоки та процедури.
- •Лекція №3. Тема 3 : Синтаксичний аналіз.
- •Метод рекурсивного спуску.
- •Ll(1)-граматика.
- •Приведення до ll(1)-граматики.
- •Алгоритм перевірки належності граматики до класу ll(1)-граматик.
- •Лекція №4. Синтаксичний розбір за допомогою lr(1)-граматики.
- •Лекція №5. Формування lr-таблиці розбору.
- •Лекція №6. Тема 4 : Аналіз контекстних умов.
- •Аналіз контекстних умов за допомогою програмних граматик.
- •Класифікація програмних граматик:
- •Лекція №7. Граматики Ван Вейнгаарда.
- •Розбір з використанням граматики Ван Вейнгаарда та лінійно-обмеженого автомату.
- •Лекція №8. Тема 5 : Генерація коду. Метод включення дій в граматику.
- •Метод включення дій в граматику.
- •Розбір декларативної частини програми.
- •Лекція №9. Тема 6 : Розподіл пам’яті під час виконання (прогону).
- •Структури даних, які необхідні для генерації коду.
- •Лекція №10.
- •Лекція №11. Генерація коду для циклу for.
- •Генерація коду для циклу while.
- •Генерація коду для нескінченого циклу.
- •Генерація коду для декларативної частини програми.
- •Генерація коду вході в процедуру та виході з неї.
- •Лекція №12. Тема 7: Діагностика та виправлення помилок.
- •Точність діагностики помилок.
- •Виправлення помилок.
- •Діагностика помилок.
- •Лекція №13. Тема 8 : Проектування транслятора. Визначення кількості проходів під час трансляції.
- •Тема 9 : Оптимізація коду.
- •Локальна та глобальна оптимізація коду.
- •Критерії оптимізації.
- •Локальна оптимізація коду.
- •Оптимізація лінійної ділянки.
- •Глобальна оптимізація коду.
- •Тема 10 : Генератори компіляторів.
Тема 10 : Генератори компіляторів.
Спробуємо дати відповідь на таке запитання: чи можна комп’ютеризувати розробку компілятора. Відповідь така:
Лексичний аналізатор можна побудувати універсальним;
Синтаксичний аналізатор взагалі можна зробити універсальним, але не кожна граматика приводиться до LL(1)-граматики;
Генератор коду – можна.
Так, уже існують генератори компіляторів в UNIX, але в ньому є недоліки:
Не витримуються критерії;
Розробка повинна бути досить простою. Можна написати командну мову, а не мову програмування.
Соседние файлы в предмете Системное программное обеспечение