Методы синтаксического анализа на базе регулярных выражений
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
HP PA-RISC с тактовой частотой не менее 500 МГц, не менее 128 Мб ОЗУ, не менее 2Гб на жестком диске для установки ОС и библиотек необходимых для запуска программы.
3) MacOSX.iMacс MacOS10.6 SnowLeopardи выше с библиотеками необходимыми для запуска программы
1.4.3Требования к программному обеспечению
1) Linux: Debian 3.1(Sarge), Mandriva 2007, Ubuntu 7.04 и выше, библиотеки: libqtcore, libqtgui, х11.
)WindowsХР SР 2 и выше, библиотеки libqtcore, libqtgui.
3)MacOSX 10.6 и выше, библиотеки libqtcore, libqtgui.
2.Проектирование программного приложения
2.1Разработка технологии обработки информации
Ввод информации осуществляется из файла, имя файла будет являться одним из аргументов запуска программы. Предварительной подготовкой является:
-создание файла;
- заполнение его данными;
-размещение на носителе;
-доступном для программы;
-разрешение доступа для чтения.
Программа должна работать в пакетном режиме. Выходные данные будут записываться в стандартный поток вывода.
Структура технологического процесса обработки информации должна быть следующая:
-считать файл;
-удалить из файла все комментарии (сначала много строчные, затем одно строчные);
-построчно разделить оставшийся текст в массив строк;
-произвести синтаксический анализ каждой строки на различные операторы;
-для каждой части строки произвести дополнительный синтаксический анализ на математические и логические операции.
2.2Разработка структуры и формы представления данных
Необходимо использование соглашений:
-объявление переменных типа char* должно сопровождаться обязательной инициализацией строкой переменной; переменных типа int может сопровождаться необязательной инициализацией, но при этом все переменные должны объявляться отдельно; массивы типа int не могут сопровождаться инициализацией, при этом могут быть только одномерными;
-все конструкции языка разделяют произвольным числом пробелов и знаков табуляции, но при этом обязательно разделяются как минимум одним символом переноса строки;
-для ключевых слов используют строчные буквы, для идентификаторов - строчные и прописные;
-в одной строке не могут размещаться несколько операторов, и не допускается разделение одного оператора на несколько строк; каждый оператор должен сопровождаться ;;
-комментарии не могут располагаться внутри других многострочных комментариев;
-функции вывода отображают или текст, или данные.
При соблюдении всех вышеперечисленных требований программа будет признана синтаксически верной.
Отформатированные исходные данные будут выведены в стандартный поток вывода. Синтаксические ошибки исходных данных будут выведены в стандартный поток ошибок с выводом сообщения о каждой найденной ошибке.
2.3Разработка алгоритма решения задачи
Алгоритм решения задачи, построен по правилам определенным ГОСТ 19.701-90, ГОСТ 19.002-80, ГОСТ 19.003-80 выполнен в приложении 1 на рисунке 1.
Для удобства чтения блок-схемы с алгоритмом проверка на соответствие регулярному выражению заменена знаком умножения.
Весь алгоритм разделен на несколько частей:
- Открытие и чтение файла
- Удаление коментариев
- Построчный разбор
- Разбор логических и алгебраических выражений
- Вывод отформатированного кода
2.4Разработка программы решения задачи
2.4.1Выбор инструментальных средств
БиблиотекаQt была выбрана из за того что, это кроссплатформенный инструментарий для разработки ПО на языке программирования С++. Она позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем, путем простой компиляции программы для каждой ОС без изменения исходного кода. Qtвключает в себя все основные классы , которые могут пригодиться при разработке ПО.
Особенность которая отличает Qtот других библиотек, это использование Meta Object Compiler (МОС) - система для предварительной обработки исходного кода. МОС позволяет увеличить производительность библиотек, добавляя такие понятия как слоты и сигналы. Так же позволяет делать код более лаконичным. МОС ищет в заголовочных файлах С++ описания классов, содержащие макрос Q_OBJECT и создает дополнительный исходный файл на С++ содержащий мета-объектный код.
Весомым преимуществом Qt является документация. Статьи снабжены большим количеством примеров. Исходный код библиотеки хорошо форматирован, подробно комментирован и легко читается, что упрощает изучение Qt.
Так же можно отметить что исходный код а так же библиотеки разрабатываемые сообществом в свободном доступе в Git-хранилище
проектирование конфигурация тестирование синтаксический анализатор
2.4.2 Разработка структуры программы
Основной функцией программы является синтаксический анализ текста. Связь с другими программами осуществляется через аргументы командной строки для задания имени файла и стандартные потоки вывода и ошибок. Программа будет состоять из пяти частей:
-первая часть будет считывать файл
-вторая удалять из него комментарии и передавать результаты своей работы второй части;
-Третья часть будет делить текст на строки и сравнивать его с различными масками, выделяя различные части строк и передавая их четвертой части;
-Че?/p>