Зміст
|
стор. |
Вступ ................................................................... |
|
1. Мета курсової роботи..................................... |
|
2. Хід виконання курсової роботи...................... |
|
3. Вимоги до вмісту пояснювальної записки ... |
|
4. Завдання на курсову роботу ......................... |
|
5. Хід оцінки результатів роботи ………….…… |
|
6. Список рекомендованої літератури ............. |
|
Вступ
1. Мета курсової роботи
Мета роботи: вивчення складових частин, основних принципів побудови і функціонування компіляторів, практичне освоєння методів побудови простих компіляторів для заданої вхідної мови.
Курсова робота полягає в створенні компілятора із заданої підмножини мови Паскаль з незначними модифікаціями і спрощеннями (повний опис вхідної і вихідної мов даний далі в завданні для кожного варіанту). Результатами курсової роботи є програмна реалізація заданого компілятора і пояснювальна записка, оформлена відповідно до вимог ДСТУ, стандартів Університету і завдання на курсову роботу.
Для програмної реалізації компілятора рекомендується використовувати мову програмування Object Pascal і систему програмування Borland Delphi. Можливо використання інші мови і системи програмування.
Компілятор рекомендується побудувати з наступних складових частин:
лексичний аналізатор;
синтаксичний аналізатор;
оптимізатор;
генератор результуючого коду.
Для побудови компілятора рекомендується використовувати методи, освоєні в ході виконання лабораторних робіт по курсу «Системне програмне забезпечення».
2. Хід виконання курсової роботи
Таблиця 1 - Етапи, що рекомендуються, і час виконання курсової роботи.
№ п/п |
Етап виконання роботи |
Час виконання (тижні) |
Результат |
|
Отримання завдання |
|
|
|
Вибір однієї з 3 форм граматики, запис граматики вхідної мови у вибраній формі граматики. |
1 |
Граматика вхідної мови. |
|
Визначення кордону між лексичним і синтаксичним аналізаторами, вибір методу взаємодії між ними. |
0.25 |
Опис лексичного аналізатора. |
|
Вибір способу організації таблиці ідентифікаторів |
0.25 |
Опис вибраного способу організації таблиці ідентифікаторів |
|
Побудова лексичного аналізатора. |
0.5 |
Граф переходів автомата лексичного аналізатора. |
|
Програмна реалізація лексичного аналізатора. |
2 |
Програмний код лексичного аналізатора. |
|
Вибір класу КС-грамматик для побудова синтаксичного аналізатора. |
0.5 |
Опис синтаксичного аналізатора, обґрунтування вибору. |
|
Програмна реалізація синтаксичного аналізатора. |
3.5 |
Програмний код синтаксичного аналізатора |
|
Вибір використовуваних форм внутрішнього представлення програми. |
0.5 |
Опис вибраних форм внутрішнього представлення програми, обґрунтування вибору. |
|
Опис використовуваного алгоритму оптимізації. |
0.5 |
Алгоритм роботи оптимізатора. |
|
Програмна реалізація оптимізатора. |
2 |
Програмний код оптимізатора |
|
Реалізація генератора результуючого коду |
2 |
Програмний код генератора результуючого коду |
|
Відладка компілятора в цілому |
1 |
Програмний код розробленого компілятора. |
|
Оформлення записки пояснення |
1.5 |
Записка пояснення до курсової роботи. |
|
Підготовка курсової роботи до захисту |
0.5 |
|
|
Захист курсової роботи |
|
|
|
Разом |
16 |
|