Методы синтаксического анализа на базе регулярных выражений

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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>