Міністерство вищої та професійної освіти
Ульяновський державний технічний університет
Кафедра Обчислювальна техніка
Дисципліна Лінгвістичне забезпечення САПР
Пояснювальна записка до курсової роботи
«Реалізація компілятора усіченого мови Pascal з використанням технології автоматизації»
Виконала студентка групи
ІВТАПбд - 31 Ткачова Е.А.
Перевірив: Макаров П.С.
Ульяновск, 2014
Анотація
Ця курсова робота виконана як результат прослуховування курсу лекцій та виконання лабораторних робіт з дисципліни Системне програмне забезпечення raquo ;. Метою її є формування уявлення про взаємозв'язок різних стадій єдиного процесу проектування складних програмних систем.
У завданні пропонується створити компілятор підмножини мови високого рівня (Pascal) на мову асемблера.
Вивчення об'єкта
Коротка теорія
Компілятор - це програма, на вхід якої надходить який - небудь текст, а на виході - машинний код com або exe файл.
Об'єктний код - напівфабрикат. Об'єктний код - переміщуваний, у ньому не дозволені зовнішні посилання. Посилання - переходи: внутрішні і зовнішні.
Для перетворення вихідного тексту в об'єктний модуль потрібно зробити аналіз і синтез.
Мета аналізу полягає в тому, щоб розібрати вихідний текст на складові і зрозуміти сенс кожної конструкції. Є три етапи аналізу: лексичний, синтаксичний і семантичний. З точки зору структури компілятора, синтаксичний аналіз головний.
Синтез складається з підготовки, генерації команд і власної генерації. Підготовка включає в себе виділення пам'яті, перетворення внутрішнього подання. Генерація полягає у формуванні машинних команд у вихідних потоках компіляторів. Якщо вся ця робота виконується за один раз, то компілятор називається однопрохідним.
Основні терміни та визначення з області формальних мов
Мова - це деяка підмножина рядків і ланцюжків символів, утворених з елементів алфавіту.
Ланцюжок символів - це деяка лінійна послідовність елементів деякого кінцевого безлічі елементів, яке називається алфавітом. У ланцюжку виділяється голова і хвіст.
Граматика - це четвірка, де V - деякий алфавіт, Т - підмножина V, яке називається алфавітом термінальних символів; Р - це набір правил спеціального виду, де U - елемент алфавіту V, а u - елемент ітерації алфавіту V. G={V, T, P, Z}. Z - початковий символ граматики, який входить в алфавіт V.
сентенціальний форма граматики - це безліч ланцюжків, які можна вивести з початкового символу граматики. Сентенціальний форма складається тільки з термінальних символів, називається пропозицією граматики.
Технічне завдання
Ядром (основою) курсової роботи є - транслятор або компілятор.
При цьому система повинна бути побудована з використанням технології автоматизації.
В якості мови програмування використовувати усічений Паскаль. Необхідно реалізувати наступні можливості Паскаля:
1. Оголошення глобальних змінних.
2. Тип всіх змінних - цілий.
. Реалізувати READ і WRITE або як вбудовані операції, або як процедури.
. READ повинна забезпечувати введення цілих змінних.
. WRITE повинна забезпечувати виведення значень виразів цілого типу.
. Вирази в мові повинні записуватися за правилами Паскаля.
Приклад: b * b - 4 * a * c
7. Реалізувати наступні інструкції:
a. Присвоєння: i:=i + 1
b.Составной оператор: begin ... end.Развілка: if ... then ... else ... .Цікл з постусловіем: repeat ... until ... .Цікл FOR
8. Текст програми повинен являти собою послідовність рядків, що складаються із символів, що утворюють алфавіт мови.
9. Алфавіт мови складається з наступних символів:
Латинські букви;
Арабські цифри від 0 до 9;
Спеціальні символи:
+ - * /= gt; lt;:; () [] {},
10. Службові слова мови
else
Лексичний аналізатор (сканер)