Программное обеспечение для визуального представления синтаксических диаграмм
Исследование проблемы визуального представления транслирующих синтаксических диаграмм. Разработка алгоритмов и программного обеспечения, которое позволяет создавать, редактировать и представлять диаграммы в форме, удобной для дальнейшей обработки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 07.01.2016 |
Размер файла | 398,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Программное обеспечение для визуального представления синтаксических диаграмм
Шахов Максим Владимирович
Бюджетные и Финансовые Технологии
Младший специалист
Рязанов Юрий Дмитриевич, доцент, БГТУ им.В.Г. Шухова
Аннотация
В данной статье решается проблема визуального представления транслирующих синтаксических диаграмм. Разработаны алгоритмы и программное обеспечение, которое позволяет создавать, редактировать и представлять диаграммы в форме, удобной для дальнейшей обработки.
Ключевые слова:
синтаксическая диаграмма; транслятор; терминал; нетерминал.
Развитие информационных технологий приводит к необходимости создания новых трансляторов языков программирования. Для этого в настоящее время широко используются системы автоматизированного построения трансляторов (САПТ) [1 - 4]. Эффективность использования САПТ определяется языком описания спецификации транслятора. Как правило, спецификация транслятора в этих системах представляется в нотации РБНФ или ее модификациях. Одним из удобных способов задания спецификации транслятора является транслирующая синтаксическая диаграмма, которая практически не используется в САПТ. Здесь дается формальное определение транслирующей синтаксической диаграммы и описывается разработанное программное средство - редактор синтаксических диаграмм, которое может быть использовано в САПТ.
Транслирующую синтаксическую диаграмму будем задавать четверкой D = (T, N, S, А, G), где T - конечное множество терминалов; N - конечное множество нетерминалов; S N - начальный нетерминал; А - конечное множество действий, G = (V, E) - ориентированный граф, где V = VTVNVАVuVвходVвыход, где Vвход - множество точек входа, |Vвход| = |N|;
VT - множество терминальных вершин;
Vu - конечное множество узлов;
Vвыход - множество точек выхода, |Vвыход| = |N|;
E = E1E2E3E4E5E6, где
E1{ (a, b) | a Vвход, b Vu} - множество входных дуг;
E2{ (a, b) |a Vu, b Vвыход} - множество выходных дуг;
E3{ (a, b) |a Vu, b VTVN} - множество дуг, выходящих из узлов;
E4 { (a, b) |a VTVNVA, b Vu} - множество дуг, входящих в узлы;
E5{ (a, b) | a VNVT, b VA} - множество дуг входящих в вершину действие;
E6{ (a, b) |a Vu,b Vu} - множество е-дуг, соединяющих узлы.
Каждому нетерминалу соответствует связная компонента графа. Компонента именуется соответствующим нетерминалом, имеет только одну точку входа и одну точку выхода и конечное множество вершин других типов. Точки входа и выхода на диаграмме компоненты не изображаются. Нетерминальная вершина изображается прямоугольником, в который вписан терминальный символ. Узел изображается на диаграмме жирной точкой. В точку входа не входит ни одна дуга и выходит конечное множество дуг (входные дуги компоненты). Узлы, в которые входят входные дуги, называются начальными. Из точки выхода не выходит ни одна дуга и входит конечное множество дуг (выходные дуги компоненты). Узлы, из которых выходят выходные дуги, называются заключительными. Каждая дуга, за исключением входных и выходных дуг, может выходить из узла и входить в терминальную или нетерминальную вершину или другой узел, выходить из терминальной, нетерминальной или вершины действия и входить в узел, либо выходить из терминальной или нетерминальной вершины и входить в вершину действие. В каждую терминальную, нетерминальную вершину и в вершину действия входит только одна дуга и выходит только одна дуга. На количество дуг, входящих в узлы и выходящих из них, ограничений нет. На рисунке 1 приведен пример транслирующей синтаксической диаграммы.
Рисунок 1 - Пример транслирующей синтаксической диаграммы.
Программа "Редактор синтаксических диаграмм" позволяет строить синтаксические диаграммы, которые соответствуют приведенному выше описанию. Пример диаграммы, построенной в данной программе, представлен на рисунке 2. Программа обладает множеством функций и возможностей. Главное меню содержит следующие пункты:
1) Изменить список нетерминалов;
2) Изменить список терминалов;
3) Создать диаграмму нетерминала;
4) Сформировать выходной файл;
Рисунок 2 - Пример диаграммы, построенной в данной программе.
Интерфейс программы приведен на рисунке 3. Рабочая область программы разделена на три части - это панель инструментов, панель редактирования, панель параметров.
транслирующая синтаксическая диаграмма визуальный
Рисунок 3 - Интерфейс программы.
После запуска программы для построения диаграммы необходимо задать список терминалов и нетерминалов. Затем выбрать пункт меню "Создать диаграмму нетерминала". Появится новая вкладка с окном редактирования.
В левой части рабочей области программы расположена панель инструментов, каждый из которых обозначен небольшой картинкой-пиктограммой. Соединительная прямая линия изображена прямой стрелкой, соединительная ломаная линия - ломаной стрелкой, терминал - прямоугольником, нетерминал - овалом, действие - ромбом, узел - точкой, функция удаления - корзиной. Назначение инструментов следующее:
1) Соединительная прямая линия. Позволяет соединить терминал и узел, нетерминал и узел, нетерминал и действие, терминал и действие. Для соединения двух объектов необходимо последовательно нажать на эти объекты левой кнопкой мыши.
2) Соединительная ломаная линия. Позволяет соединить те же объекты что и прямая линия, но имеет точки перелома, количество которых задает пользователь. Для соединения объектов ломанной линией необходимо последовательно нажать объект из которого выходит линия, затем точки перелома линии и объект, в который входит линия.
3) Терминал. Позволяет добавить на панель редактирования объект терминал и задать его название из списка терминалов.
4) Нетерминал. Позволяет добавить на панель редактирования объект нетерминал и задать его название из списка нетерминалов.
5) Действие. Позволяет добавить на панель редактирования объект действие (процедуру, которую следует выполнить при трансляции).
6) Узел. Позволяет добавить на панель редактирования объект узел и задать тип узла (начальный, промежуточный, допускающий). Узлы разных типов отличаются цветом. Начальный узел - синего цвета, промежуточный - черного, допускающий - красного.
7) Удаление объекта. Позволяет удалять любой объект, расположенный на панели редактирования. Для этого необходимо выбрать данный пункт, а затем выбрать объект, который необходимо удалить.
8) Включение/отключение сетки. Позволяет включить или отключить разлиновку панели редактирования. Эта возможность помогает в выравнивании объектов.
По центру расположена панель редактирования. Это и есть главное окно, в котором происходит построение синтаксической диаграммы. На эту панель перетаскиваются объекты из панели инструментов.
Справа находится панель инструментов, которая содержит три основных списка: список действий, список нетерминалов и список терминалов.
Кроме основных функций существуют еще и дополнительные, которые используются для редактирования уже созданной синтаксической диаграммы:
1) Перемещение объекта. Любой объект, расположенный на панели редактирования, можно перетаскивать, при этом все входящие и выходящие линии тоже перемещаются вместе с объектом.
2) Переименовать объект. Для переименования необходимо дважды кликнуть по объекту, после чего появится дополнительное окно, в котором пользователь вводит новое имя объекта и нажимает кнопку "Сохранить".
3) Изменить тип узла. После двойного клика по объекту появляется дополнительное окно, в котором можно выбрать новый тип узла и нажать кнопку "Сохранить". В этом случае узел меняет свой цвет.
Синтаксическая диаграмма каждого нетерминала располагается в отдельной вкладке.
Программа формирует выходной файл, который описывает структуру синтаксической диаграммы. Этот файл может быть использован в САПТ для необходимых преобразований синтаксической диаграммы и генерации транслятора.
Программное обеспечение "Редактор синтаксических диаграмм" реализовано на языке C# и представляет собой совокупность следующих модулей:
1) Node. cs - класс для узлов.
Свойства: point - координаты узла,
label - номер узла,
type - тип узла;
Методы: Node_Load () - добавление узла на панель редактирования,
Node_MouseDoubleClick () - событие при двойном клике по узлу,
Node_MouseMove () - перемещение узла,
2) Components. cs - класс терминалов и нетерминалов.
Свойства: point - координаты компонента,
type - тип (термин или нетерминал),
name - название компоненты;
Методы: Components _Load () - добавление компонента на панель
редактирования,
Components _MouseDoubleClick () - событие при двойном клике,
Components _MouseMove () - перемещение компонента;
3) Action. cs - класс действий.
Свойства: point - координаты действия,
Comp - компонент, после которого выполняется действие,
name - название действия;
Методы: Action _Load () - добавление действия на панель редактирования,
Action_MouseDoubleClick () - событие при двойном клике по действию,
Action _MouseMove () - перемещение действия,
4) Lines. cs - класс для линий.
Свойства: startPoint, endpoint - координаты начала и конца линии,
list - список переломных точек для ломаной линии,
startComp - компонент, из которого выходит линия,
endComp - компонент, в который входит линия.
MainModule. cs описывает логику работы программы, а также содержит реализацию ее интерфейса. В этом модуле описан класс формы mainForm, на которой размещены все основные компоненты для управления работой программы.
Таким образом, разработаны алгоритмы и программа для визуального представления синтаксических диаграмм, которая позволяет создавать, редактировать и представлять диаграммы в форме, удобной для дальнейшей обработки в САПТ.
Существуют следующие аналоги разработанного программного обеспечения: Railroad Diagram Generator, EBNF Visualizer, ANTLR. Разработанный программный продукт будет более предпочтительным, так как он имеет функциональность (например, графическое представление диаграммы, построение транслятора, авто-преобразование диаграмм и др.), которая есть у аналогов, а также поддерживает ряд возможностей (например, устранение конфликтов перехода при построении транслятора), которых нет ни в одном другом аналоге.
Библиографический список
1. ANTLR // [Электронный ресурс]. Режим доступа: // URL: http://www.antlr.org/
2. ASF+SDF. // [Электронный ресурс]. Режим доступа: // URL: http://www.cwi. nl/projects/MetaEnv/
3. Bison // [Электронный ресурс]. Режим доступа: // URL: http://www.gnu.org/software/bison/
4. Coco/R // [Электронный ресурс]. Режим доступа: // URL: http://www.ssw. uni-linz. ac. at/Research/Projects/Coco/
Размещено на Allbest.ru
Подобные документы
Таблицы как неотъемлемый атрибут печатной научно-технической документации. Понятие, цели и задачи технологического обеспечения. Редактирование текста. Рисунки как средство визуального представления. Создание и настройка внешнего вида базовой диаграммы.
контрольная работа [379,5 K], добавлен 16.09.2014С помощью Excel можно создавать сложные диаграммы. Ряд данных. Категории. Создание внедренных диаграмм. Создание диаграмм на отдельном листе. Настройка элементов диаграммы. Элемент диаграммы. Быстрый способ создания диаграмм. Построения графика.
лабораторная работа [16,6 K], добавлен 10.03.2007Разработка интерфейса программы, обеспечивающего доступ ко всем возможностям среды структурно-визуального программирования. Реализация инструментальных средств, позволяющих связывать компоненты в единое приложение. Создание иерархии классов представления.
дипломная работа [2,3 M], добавлен 11.04.2012Проектирование схемы реляционной базы данных торговой компании. Создание диаграмм последовательности (Sequence Diagram) и кооперативных диаграмм (Collaboration diagram). Автоматическая генерация кода нескольких компонентов средствами Rational Rose.
курсовая работа [2,0 M], добавлен 26.06.2015Программное обеспечение для обслуживания автосалона с графическим интерфейсом, возможностью хранения файлов на диске и поиском. Программное проектирование. Документирование программного обеспечения, его тестирование. Разработка руководства пользователя.
курсовая работа [1,7 M], добавлен 06.01.2013Создание информационной системы обработки матриц. Общая характеристика программного обеспечения, которое реализует выполнение заданных функций. Программа разработана с использованием среды визуального программирования Delphi 7 и языка Object Pascal.
курсовая работа [373,4 K], добавлен 14.01.2011Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.
дипломная работа [1,7 M], добавлен 13.06.2017Создание круговой диаграммы в табличном процессоре Microsoft Office Excel. Построение графиков математических функций. Назначение и алгоритм построение диаграммы с помощью Мастера диаграмм. Типы диаграмм в Excel. Метки строк и столбцов диаграммы.
лабораторная работа [1,6 M], добавлен 15.11.2010Наглядное соотношение величин в диаграмме. Построение диаграмм на основании числовых данных, содержащихся в таблицах. Типы диаграмм и их объекты. Особенности создания диаграмм в MS Excel, их характеристики. Гистограмма, круговая диаграмма, графики.
презентация [550,9 K], добавлен 12.12.2012Разработка интерфейса справочно-расчетного программного обеспечения. Расчетно-графический модуль. Решение задачи динамического моделирования в системе MATLAB/Simulink. Программная реализация, результаты моделирования системы на текстовых примерах.
курсовая работа [2,6 M], добавлен 01.12.2014