ощью алгоритмом «зсув-згортка». Результат цього розбору формується в бінарне дерево модулем TblElem, что Ми можемо Бачити на закладці «Синтаксис» ОСНОВНОЇ програми.
2.4 ГЕНЕРАЦІЯ та оптімізанія об'єктного коду
После Виконання синтаксичного розбору программа пріступає до генерації коду. Для цього на проміжній стадії краще за все вікорістаті внутрішнє представлення команд у вігляді тріад. Структуру побудова тріад опісує модуль Triads, а побудову списку проводити модуль TrcMake. Даній модуль на Основі результатів роботи модуля TblElem формує Самі тріади. После Формування списку тріад модуль TrdType формує їхнє представлення у вікні програми.
После цього нужно оптимізувати тріади методом згортки про єктного коду або видалений лішніх операцій. Дана робота проводитися в Модулі TrdOpt, разом з тім модуль TrdCalc Виконує обчислення результату Виконання віхідного коду.
Останнім етапом є представлення асемблерного коду програми. Віходячі з результатів Виконання побудова списку тріад та оптімізації коду, модуль TrdAsm формує до?? Д програми, Який представляється в закладці ОСНОВНОЇ форми програми «Команди».
Во время усіх етапів основною програмою ведеться контроль за наявністю синтаксичних, лексічніх, семантичності помилок у віхідному коді. После Завершення роботи всех модулів, основний модуль перевіряє, чи не повідомів Якийсь Із них про ВИНИКНЕННЯ помилок в процесі АНАЛІЗУ, генерації та оптімізації коду, І, при коректний віконанні Завдання всіма модулями програми, виводу ПОВІДОМЛЕННЯ «Компіляція виконан успішно».
3. Графічний інтерфейс програми
Рис. 3.1. Графічний інтерфейс програми
Висновки
В результаті Виконання даної курсової роботи мною Було Створено компілятор для заданої вхідної мови. Введення коду програми здійснюється Завантажени текстового файлу, при віконанні компілятор будує таблицю ідентіфікаторів, Робить синтаксичний розбір коду, Виконує побудову списку тріад, опгімізує его, та генерує вихідний асемблерній код.
Виконання даної курсової роботи дозволяє студенту набути необхідніх знань в теоретичності основах роботи компіляторів, а такоже удосконаліті навики в об єктно-орієнтованого програмування та роботи в комплексних СЕРЕДОВИЩА розробки прикладних програм на мовах високого уровня.
Список використаної літератури
1. Молчанов А.Ю. Системне програмне забезпечення: Підручник для вузів [Текст] / А.Ю. Молчанов.- СПб.: Питер, 2003
2. Компілятор - Вікіпедія [електронний pecypc] / <# «justify"> 3. Конспект лекцій з дисципліни «Системне програмне забезпечення».
4. Гордєєв О.В. Системне програмне забезпечення [Текст] / А.В. Гордєєв, А.Ю. Молчанов.- СПб.: Питер, 2002
5. Зубков С.В. Асемблер для DOS, Windows і Unix.- М.: ДМК Пресс, 2000. -
Додатки
Додаток А
Лістінг головної форми програми
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Diagnostics;System.Globalization;SysBio...