Алгоритм для реализации синтаксического анализатора

КУРСОВАЯ РАБОТА

по Языкам и методам программирования

Тема: «Разработка синтаксического анализатора

на языке С#: арифметические выражения_1»

Выполнил:

Обучающийся

группы ИПО-15 В.И. Бигу

Проверил:

Ст. преподаватель

кафедры Математики Д.О. Федорович

Зав. кафедры Математики О.Г. Ларионова

г. Братск, 2016

Содержание

Введение 3

1 Анализ и вычислительные возможности программы 4

1.1 Алгоритм для реализации синтаксического анализатора 4

1.2 Анализ выражения на ошибки 5

1.3 Целесообразность выбора языка программирования 6

2 Руководство по приложению 8

2.1 Способы ввода данных 8

2.2 Визуальный способ 8

2.3 Ручной способ 8

2.4 Автоматический способ 8

Заключение 24

Список использованных источников 25

Приложение А – Листинги программ 26

Введение

Курсовая работа заключается в разработке синтаксического анализатора на языке С# на тему «Арифметические выражения_1».

В курсовой работе данная задача актуальна потому, что с помощью арифметики можно довольно точно вычислять выражения и внедрять в любые сферы деятельности, где данная точность необходима.

Необходимо разработать программу, осуществляющее синтаксический анализ программы, содержащей следующие элементы: типы, операторы, описание библиотек, описание переменных, арифметические выражения, функции ввода и вывода.

Цель работы заключается в написании синтаксического анализатора, поддерживающий контекстно-свободные грамматики, непосредственно связанные с арифметическими выражениями, а также в приобретении навыков программирования на языке С#.

Задачи:

1. Изучить литературу для анализа выбранной темы.

2. Разработать задачи синтаксического анализа простой программы.

3. Разработать алгоритм нахождения синтаксических ошибок в тексте программы.

4. Произвести вывод данных о возможных ошибках.

5. Спроектировать программу анализа арифметического выражения и методы проверки его.

Курсовая работа состоит из введения, двух глав, заключения, литературы. В работе содержится ….. рисунков, изложена работа на ….. страницах.

В первой главе рассмотрены возможные ошибки при работе с синтаксическим анализатором, приведен анализ, а также обоснование выбора языка разработки для проектирования программного продукта.

Во второй главе производится подробное описание работы программы, приводится графические примеры, а также описание свойства окна, технические характеристики. В заключении подведены итоги курсовой работы.

Анализ и вычислительные возможности программы

Алгоритм для реализации синтаксического анализатора

Алгоритм анализа арифметического выражения достаточно прост. Синтаксический анализатор создается поэтапно, переходя от простых примеров к сложным.

Сначала нужно распознавать вещественное число, а потом написать простейший калькулятор, который умеет выполнять четыре действия арифметики над числами без учета приоритета операций.

Затем программа научится учитывать приоритет этих операций, а чуть позже – использовать скобки для изменения этого приоритета. Далее калькулятор обретет способность работать с переменными, вычислять функции и возводить в степень, то есть станет вполне полноценным.

И на последнем этапе добавим лексический анализатор – средство, которое формализует разбор выражений со сложной грамматикой и тем самым существенно облегчает написание синтаксических анализаторов.

Дадим определение, что такое синтаксис и разберём способы разработки программного продукта для арифметических выражений.

Синтаксис – это набор правил, которые позволяют сделать заключение о том, принадлежит ли заданное выражение языку или нет.

Чтобы выполнить поставленные задачи, программе требуется анализировать выражение на различные ошибки, извлекать информацию о введенных переменных, разбирать выражения синтаксически, затем используя определенные методы решения, необходимо вывести его общее решение.

Разрабатываемый программный продукт позволяет сформировать выражение, подлежащее анализу, тремя способами:

1. Визуальный (графический) способ.

Данный способ реализуется с помощью программного кода, который добавляет в интерфейс кнопки с цифрами. Пользователь вводит выражение с помощью кнопок, расположенных на форме. Является наиболее легким для поиска ошибок, так как можно поставить ограничения на соответствующие поля и кнопки.

2. Ручной способ.

Этот способ предполагает ввод выражений пользователем самостоятельно с клавиатуры. Он является наиболее сложным для поиска ошибок, так как может не соответствовать типу рассматриваемых выражений. Если найдена ошибка, программа сообщит о ней и запросит вновь ввести арифметическое выражение.

3. Автоматический способ.

Данная программа сама генерирует выражение. В соответствии с заданием, разрабатываемая программа должна, в зависимости от способа, запрашивать ввод вычисляемого выражения, либо генерировать его, анализировать выражение на ошибки, выводить результат, либо запрашивать ввод результата для его проверки. Значение каждой переменной вводится лишь однажды.

Для выполнения перечисленных заданий необходимо провести синтаксический анализ исходного выражения на части, т.е. составить дерево разбора, в результате которого будет извлечена информация о введённых данных.

Составив дерево разбора, можно продумать некоторые действия пользователя и предположить какие он может сделать ошибки.

Наши рекомендации