Анотація
В курсовій роботі був розроблений транслятор з вхідної мови програмування, заданої завданням, на мову асемблер, з подальшою компіляцією отриманого коду і створення виконавчого файлу. Даний транслятор виконує лексичний аналіз, синтаксичний і семантичний, при наявності помилок у вхідному тексті програми створює список помилок і попереджень. У курсовій роботі створений лексичний аналізатор на базі скінченного автомата, а синтаксичний аналізатор на основі низхідного методу з використанням рекурсивного спуску.
Транслятор був розроблений за допомогою технології C# в середовищі MS Visual Studio 2010.
Зміст
Анотація……………………………………………………………………………………2
Зміст………………………………………………………………………………………3
Завдання на курсову роботу……………………………………………………………..4
Вступ………………………………………………………………………………………5
1. Огляд методів та способів проектування трансляторів………………………….7
2. Формальний опис вхідної мови програмування………………………………….8
2.1. Деталізований опис вхідної мови в термінах розширеної нотації
Бекуса-Наура…………………………………………………………………………………….8
2.2. Опис термінальних символів та ключових слів…………………………………….. 10
3. Розробка транслятора вхідної мови програмування……………………………12
3.1. Вибір технології програмування……………………………………………………… 12
3.2. Проектування таблиц ь транслятор а та вибір структур даних……………… 13
3.3. Розробка лексичного аналізатора…………………………………………………… 16
3.3.1. Розробка граф-схеми алгоритму………………………………………… 17
3.3.2. Опис програми реалізації лексичного аналізатора………………….. 17
3.4. Розробка синтаксичного та семантичного аналізатора………………………. 19
3.4.1. Розробка дерев граматичного розбору………………………………… 20
3.4.2. Розробка граф-схеми алгоритму………………………………………… 21
3.4.3. Опис програми реалізації синтаксичного та
семантичного аналізатора………………………………………………………………….. 22
3.5. Розробка генератора коду……………………………………………………………. 23
3.5.1. Розробка граф-схеми алгоритму………………………………………… 23
3.5.2. Опис програми реалізації генератора коду……………………………. 24
4. Опис інтерфейсу та інструкції користувача……………………………………..25
5. Відлагодження та тестування програми…………………………………………27
5.1. Виявлення лексичних помилок…………………………………………………………. 27
5.2. Виявлення синтаксичних помилок……………………………………………………. 28
5.3. Виявлення семантичних помилок…………………………………………………….. 29
5.4. Загальна перевірка коректності роботи транслятора………………………… 30
Висновки…………………………………………………………………………………31
Список літератури……………………………………………………………………..32
Додатки………………………………………………………………………………….33
А. Лістинг програм …………………………………………………………………………… 33
Завдання на курсову роботу
Тема: Розробка транслятора з вхідної мови програмування.
- типи даних: INT32_t, BOOLEAN, const string;
- оператор вводу: READ;
- оператор виводу: WRITE;
- блок тіла програми: START, FINISH
- оператор: WHILE DO (Паскаль);
- регістр ключових слів: Up;
- регістр ідентифікаторів: Low2 ;
- операції арифметичні: ADD, SUB, MUL, DIV,MOD;
- операції порівняння: =, <>, LE, GE
- операції логічні: !, &, |;
- коментар: $$...
- ідентифікатори змінних, числові константи, рядкові константи;
- оператор присвоєння: >>;
Для отримання виконавчого файлу з вихідного асемблерного коду потрібно використовувати ml.ex (MASM32) вбудований в MS Visual Studio 2010.
Вступ
Транслятор – програма або технічний засіб, що виконує трансляцію програми. Транслятор зазвичай виконує також діагностику помилок, формує словники ідентифікаторів, видає для друку тексти програми і т. д.
Трансляція програми – перетворення програми, представленої на одній з мов програмування, в програму на іншій мові, в певному сенсі, рівносильну з першою. Мова, на якій представлена вхідна програма, називається вихідним мовою, а сама програма – вихідним кодом. Вихідна мова називається цільовою мовою або об'єктним кодом.
Поняття трансляції відноситься не тільки до мов програмування, але і до інших комп'ютерних мов, на зразок мов розмітки, аналогічних HTML, і до природних мов, на зразок англійської або російської
Транслятори поділяються на:
- Адресний.
- Діалоговий.
- Багатопрохідної.
- Зворотний. (детранслятор).
- Однопрохідної.
- Оптимізуючий.
- Синтаксично-орієнтований (синтаксично-керований).
- Тестовий.
Мова процесорів (машинний код) зазвичай є низькорівневою. Існують платформи, які використовують в якості машинної мову високого рівня (наприклад, iAPX-432), але вони є винятком із правила через складність і високу вартість. Транслятор, який перетворює програми в машинну мову, який приймає і виконуваний безпосередньо процесором, називається компілятором.
Процес компіляції як правило складається з декількох етапів: лексич
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.