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

Компілятор для створення лінійних програм обчислення простих арифметичних виразів на основі алгоритму Рутисхаузера

Назва:
Компілятор для створення лінійних програм обчислення простих арифметичних виразів на основі алгоритму Рутисхаузера
Тип:
Курсова робота
Мова:
Українська
Розмiр:
9,95 KB
Завантажень:
118
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2  3  4  5  6  7 
КУРСОВИЙ ПРОЕКТ
з дисципліни СИСТЕМНЕ ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ
Тема – РОЗРОБКА КОМПІЛЯТОРА ДЛЯ СТВОРЕННЯ ЛІНІЙНИХ ПРОГРАМ ОБЧИСЛЕННЯ ПРОСТИХ АРИФМЕТИЧНИХ ВИРАЗІВ НА ОСНОВІ АЛГОРИТМУ ТРАНСЛЯЦІЇ РУТИСХАУЗЕРА З ВИВОДОМ РЕЗУЛЬТАТІВ.
ЗАВДАННЯ
НА КУРСОВИЙ ПРОЕКТ
Тема проекту – Розробка компілятора для створення лінійних програм обчислення простих арифметичних виразів (операції: +, -, *, /, “(”, “)”) на основі алгоритму трансляції Рутисхаузера з виводом результатів на екран.
Термін здачі студентом закінченого проекту – 25 травня 2007 року.
Зміст пояснювальної записки :
опис програми
текст основної програми
текст підпрограм
Перелік графічного матеріалу:
блок-схема виконання програми
Дата видачі завдання – 15 лютого 2007 року.
АНОТАЦІЯ
В даному проекті розроблений компілятор, який дозволяє створювати лінійні програми обчислення простих математичних виразів на основі алгоритму трансляції Рутисхаузера. Програма транслює вирази з додаванням, відніманням, множенням і діленням знакових 16-розрядних змінних та літералів. Окрім цього реалізовані функції вводу з клавіатури та виводу змінних на екран. Результатом роботи компілятора є *.exe файл.
SUMMARY
A compiler which allows to create linear programs for calculation of simple mathematical expressions, based on Rutishauser translation algorithm, is developed in this project. The program translates expressions with addition, subtraction, multiplication and division of signed 16-bit variables and literals. 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. БЛОК-СХЕМА ВИКОНАННЯ ПРОГРАМИ.....................................................6
2. ОПИС АЛГОРИТМУ РУТИСХАУЗЕРА...........................................................9
3. ОПИС ПРОГРАМИ……………………………………………………………12
4. ТЕКСТ ПРОГРАМИ.……………………………………………….…………...
5. ТЕКСТ ПІДПРОГРАМ………………………………………………………….
6. ВИСНОВКИ..........................................................................................................
7. ПЕРЕЛІК ВИКОРИСТАНИХ ЛІТЕРАТУРНИХ ДЖЕРЕЛ..............................
КП.КС-05.00.00.000 ПЗ
Зм. | Лист | № докум | Підпис | Дата
Розроб. | КОМПІЛЯТОР ДЛЯ СТВОРЕННЯ ЛІНІЙНИХ ПРОГРАМ ОБЧИСЛЕННЯ ПРОСТИХ АРИФМЕТИЧНИХ ВИРАЗІВ НА ОСНОВІ АЛГОРИТМУ РУТИСХАУЗЕРА | Літ. | Арк. | Аркушів
Перевір. | 5 | 28
Реценз.
Н.Контр.
Затверд.
1 БЛОК-СХЕМА ВИКОНАННЯ ПРОГРАМИ
Рис. 1. Блок-схема виконання програми
КП.КС-05.00.00.000 ПЗ | Арк.
6
Зм. | Арк. | № докум | Підпис | Дата
Рис. 1. Блок-схема виконання програми (продовження)
 
КП.КС-05.00.00.000 ПЗ | Арк.
7
Зм. | Арк. | № докум | Підпис | Дата
Рис. 1. Блок-схема виконання програми (продовження)
 
КП.КС-05.00.00.000 ПЗ | Арк.
8
Зм. | Арк. | № докум | Підпис | Дата
2 ОПИС АЛГОРИТМУ РУТИСХАУЗЕРА
Алгоритм Рутисхаузера – один з найбільш простих, його особливістю є припущення про повну дужечність в структурі виразу. Під дужечністю розуміють запис виразу таким чином, що порядок і пріоритет операцій задається розстановкою дужок, а не явний пріоритет операцій при цьому не враховується.
В процесі обробки виразу на основі повної дуженної структури алгоритм присвоює кожному символу оброблюваного рядка номер рівня (пріоритету) за наступними правилами:
Правило 1: Якщо поточний символ – це дужка, що відкривається або заміна, то значення пріоритету зростає на одиницю.
Правило 2 : Якщо поточний символ – це знак операції або дужка що закривається, то пріоритет зменшується на одиницю.
Таким чином, для виразу (А + (B * С)) присвоєння значення рівнів пріоритету буде здійснюватись наступним чином
№ символу
1
2
3
4
5
6
7
8
9
Символ
(
А
+
(
В
*
С
)
)
Рівень пріоритету
1
2
1
2
3
2
3
2
1
Алгоритм трансляції складається з наступних кроків:
Крок 1: Здійснити розстановку пріоритетів;
Крок 2: Виконати пошук триплету (трійки символів) з максимальним значенням рівнів пріоритету;
Крок 3: Виділити трійку (два операнди з максимальним значенням рівнів пріоритету і операції між ними);
Крок 4: Здійснити обчислення, результат якого занести в проміжну змінну;
Крок 5: З вихідного рядка видалити виділений триплет разом з дужками, а на її місце помістити проміжну змінну, яка позначає результат зі значенням рівня пріоритету на одиницю менше ніж у виділеного триплету (трійки символів);
 
КП.

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



Курсова робота на тему: Компілятор для створення лінійних програм обчислення простих арифметичних виразів на основі алгоритму Рутисхаузера

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