МИНИСТЕРСТВО ОБРАЗОВАНИЯ
РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Кафедра информатики
КУРСОВОЙ ПРОЕКТ
по предмету
«Объектно-ориентированное программирование»
на тему «Интерпретатор языка
программирования».
Выполнил ст. гр.********
************.
Проверил
****************.
Содержание.
Содержание. 2
Введение.. 3
Постановка задачи. 4
Описание реализованного в интерпретаторе языка программирования. 5
Примеры пользовательских функций.. 12
1. Сортировка массива. 12
2. Вычисление НОД по алгоритму Евклида. 12
3. Рекурсивное вычисление факториала. 13
4. Проверка, является ли строка корректным идентификатором. 13
5. Вычисление угла треугольника по трем сторонам. 14
Проектирование и реализация программы-интерпретатора 15
Внутреннее представление и выполнение программы. 18
Обработка текста программы. 24
Графический интерфейс пользователя. 27
Взаимодействие подсистем интерпретатора. Класс Facade. 31
Заключение.. 33
Приложение. Исходный текст (сокращенно). 34
1. Класс VarBase. 34
2. Класс ArrayVar. 34
3. Класс InterprEnvironment. 36
4. Класс Namespace. 40
5. Интерфейс IСomputable. 42
6. Класс Call. 42
7. Класс ArgList. 42
8. Класс Expression. 43
9. Класс Operation (сокращенно). 49
10. Класс Parser. 50
11. Класс LineCompiler. 56
12. Интерфейс IOperator. 60
13. Класс Command. 60
14. Класс ForOperator. 61
15. Класс NextOperator. 62
16. Класс Subroutine. 62
17. Класс Facade. 67
18. Класс SourceBox. 69
19. Класс Form1. 75
Использованная литература и документация. 78
Введение Стандартный «Калькулятор» Windows является, пожалуй, единственной имеющей широкое распространение программой, предназначенной для мелких вычислений. Его не могут заменить из-за своей громоздкости, ни электронные таблицы, ни профессиональные математические пакеты. Но в то же время эта программа имеет существенные недостатки, причина которых проста – пользовательский интерфейс сделан «по образу и подобию» карманного калькулятора, поэтому заимствованы все неудобства последнего. Например, при работе пользователь видит только одно число и после получения результата не может проверить, правильно ли были введены операнды. Второй проблемой является невозможность добавления пользовательских функций – если приходится производить вычисления по одной и той же формуле сто раз, сто раз приходится нажимать соответствующую кнопку для каждой арифметической операции в выражении. ............