Головна Головна -> Курсові роботи українською -> Інформатика, комп'ютери, програмування -> Розробка компілятора для створення спрощених програм з виводом текстових повідомлень та розгалуженнями на основі умовного оператора CASE

Розробка компілятора для створення спрощених програм з виводом текстових повідомлень та розгалуженнями на основі умовного оператора CASE

Назва:
Розробка компілятора для створення спрощених програм з виводом текстових повідомлень та розгалуженнями на основі умовного оператора CASE
Тип:
Курсова робота
Мова:
Українська
Розмiр:
6,47 KB
Завантажень:
240
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2  3  4 
КУРСОВИЙ ПРОЕКТ
з дисципліни СИСТЕМНЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ
Тема – РОЗРОБКА КОМПІЛЯТОРА ДЛЯ СТВОРЕННЯ СПРОЩЕНИХ ПРОГРАМ З ВИВОДОМ ТЕКСТОВИХ ПОВІДОМЛЕНЬ ТА РОЗГАЛУЖЕННЯМИ НА ОСНОВІ УМОВНОГО ОПЕРАТОРА CASE.
ПОЯСНЮВАЛЬНА ЗАПИСКА
АНОТАЦІЯ
В даному проекті розроблений компілятор, який дозволяє створювати спрощені програми з виводом текстових повідомлень та розгалуженнями на основі умовного оператора CASE. Операції присвоєння та порівняння реалізовані для однобайтових констант та змінних. Окрім цього реалізовані функції вводу з клавіатури та виводу змінних на екран. Результатом роботи компілятора є *.exe файл.
SUMMARY
A compiler which allows to create simplified programs with showing of text messages and branching on the basis of conditional statement CASE is developed in this project. The operations of equation and comparison are realized for byte constants and variables. Except for it the functions of input from a keyboard and showing of variables on a screen are realized. The result of compilers work is *.exe file.
ЗМІСТ
Стор
1. БЛОК-СХЕМА ВИКОНАННЯ ПРОГРАМИ
2. ОПИС ПРОГРАМИ
3. ТЕКСТ ПРОГРАМИ
4. ТЕКСТ ПІДПРОГРАМ
5. ВИСНОВКИ
6. ПЕРЕЛІК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ
Зм. | Лист | № докум | Підпис | Дата
Розроб. | Літ. | Арк. | Аркушів
Перевір. | 5
Реценз.
Н.Контр.
Затверд.
1 БЛОК-СХЕМА ВИКОНАННЯ ПРОГРАМИ
Рис. 1. Блок-схема основної програми
Арк.
6
Зм. | Арк. | № докум | Підпис | Дата
Рис. 2. Блок-схема функції Scaner
 
Арк.
7
Зм. | Арк. | № докум | Підпис | Дата
2 ОПИС ПРОГРАМИ
Вхідний файл може включати змінні, що містять в імені (ім’я має довжину 31 символ) великі та малі букви англійського алфавіту (регістр символів не ігнорується), літерали (від -128 до 127). Окрім цього, є оператори вводу (cin>>змінна) та виводу (cout<<змінна) змінних, що задаються тільки малими буквами і не можуть бути використані, як назви змінних. Окрім цього є функція виводу текстових повідомлень cout<<”рядок”. Окремий рядок у вхідному файлі може мати одну з чотирьох форм:
A=B // Присвоєння змінній значення змінної
var=-64 // Ініціалізація змінної
cin>>a // Ввід значення змінної з клавіатури
cout<<F // Вивід значення змінної на екран
cout<<”рядок”// Вивід текстового рядка на екран
Оператор CASE дозволяють умовне виконання вищенаведених операторів. Процес формування об’єктного коду виконаний окремою функцією Scaner (Рис 2), що обробляє фрагменти програми, які знаходяться в фігурних дужках. В ці фрагменти можуть належати або не належати оператору CASE, а також включатися одне в одне (до 8 вкладень). При знаходженні символу ‘{’ виконується рекурсивний виклик функції Scaner, при знаходженні ’}’ – вихід.
Програма формує текст програми на мові Асемблер для процесора 8086 з арифметичним співпроцесором 8087. Співпроцесор використовується для двостороннього перетворення між двійковими та двійково-десятковими числами в операторах вводу/виводу змінних. Для цих перетворень резервується 10 байт в сегменті даних. Оператори вводу/виводу реалізовані викликом відповідної підпрограми. Текст цих підпрограм наведений в четвертому розділі пояснювальної записки.
Кодові взірці для усіх можливих конструкцій наведені в Табл. 1. Слід зауважити, що для присвоєння змінній значення числа формується не асемблерна команда, а директива <назва_змінної> DW <значення_змінної> в сегменті даних.
Арк.
8
Зм. | Арк. | № докум | Підпис | Дата
Таблиця 1
Конструкція
Об’єктний код
змінна1=змінна2
mov al, змінна2
mov word змінна1,al
cin>>змінна
lea bx, змінна
call cin
cout<<змінна
lea bx, змінна
call cout
cout<<”рядок”
lea dx,str<N>
mov ah,9
int 21h
switch(змінна){
case(значення)
{
оператори
}
}
mov al,змінна
cmp al,значення
jnz m<N>
команди
m<N>:
Усі дані в програмі представлені знаковими 8-розрядними числами в діапазоні від -128 до 127 (для роботи з 8087 використовуються слова в пам’яті).

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2  3  4 



Курсова робота на тему: Розробка компілятора для створення спрощених програм з виводом текстових повідомлень та розгалуженнями на основі умовного оператора CASE

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок