Автор: Пользователь скрыл имя, 27 Апреля 2012 в 12:15, курсовая работа
Метою даної курсової роботи є розробка транслятора заданої вхідної мови програмування, до якої висуваються наступні базові вимоги:
• Кожна програма починається зі слова begіn і закінчується словом end. Все що до begіn і після end не аналізується.
• Програма має надавати можливість працювати зі змінними k, l, m. Змінні перед використанням мають бути попередньо оголошені за наступним форматом: «тип даних» «змінна1», «змінна2».
• Присвоєння до змінних виконується оператором присвоєння:=.
• Програма має надавати можливість працювати з константами k1, k2, k3. Константи ініціюються наступним чином: «константа» = «число;».
• Ввід даних зі стандартного вводу відбувається оператором scanf(), а вивід оператором prіntf().
ЗМІСТ
Вступ……...…………………………………………………………….................7
1. Аналітичний розділ............................................................................................9
1.1Фази компілятора..................................................................................9
1.2Лексичний аналіз.................................................................................10
1.3Синтаксичний аналіз...........................................................................12
1.3.1 Обробка синтаксичних помилок..........................................14
1.4 Семантичний аналіз............................................................................16
1.4.1 Таблиці ідентифікаторів і таблиці символів.......................19
1.4.2 Таблиці ідентифікаторів.......................................................19
1.5 Генерація коду.......................................................................................20
2. Розробка компілятора вхідної мови програмування.....................................21
2.1 Формальний опис вхідної мови програмування..............................21
2.2 Розробка лексичного аналізатора......................................................23
2.3 Розробка синтаксичного аналізатора................................................24
2.4 Розробка генератора коду..................................................................25
3. Тестування компілятора.................................................................................26
3.1 Виявлення лексичних помилок.........................................................26
3.2 Виявлення синтаксичних помилок....................................................27
3.3 Виявлення семантичних помилок.....................................................27
3.4 Загальна перевірка коректності роботи компілятора......................28
Висновок..............................................................................................................29
Література............................................................................................................30
Додаток А.............................................................................................................31
Додаток В.............................................................................................................54