В информатике при изучении компиляторных курсов, и, в частности лексического анализа используются инструменты для генерации лексических анализаторов. Большинство данных инструментов не имеют графической оболочки и
кроме того для получения лексического анализатора с их помощью приходится
вручную вводить соответствующий набор команд. Это усложняет процесс освоения данной темы, и увеличивает количество ошибок при создании лексического анализатора.
Поэтому возникает необходимость разработать функциональную среду,
имеющую графический интерфейс и позволяющую автоматизировать генерацию
лексических анализаторов с возможностью визуального контроля написания и
редактирования спецификаций для анализатора.
Поскольку большинство генераторов лексических анализаторов не предоставляют удобный графический интерфейс цель данного дипломного проекта разработка Visual flex – визуального редактора-генератора лексических анализаторов
на основе Flex.
Основные задачи проекта:
1) разработать графическую оболочку, в которой предоставить подсветку
синтаксиса для написания flex-спецификаций с выделением конфликтов по мере
написания регулярного выражения;
2) предоставить возможность автозавершения объявленных инструкция;
3) предоставить автоматическую генерацию исходного текста лексического
анализатора с помощью Flex;
4) предоставить автоматическую генерацию лексического анализатора по
исходному тексту c помощью свободного компилятора gcc;
5) предоставить возможность пошагового выполнения на тестовом входном
файле;
6) предоставить возможность использования точек останова в тестовом
входном файле
В ходе выполнения дипломного проекта была рассмотрена теория лексического анализа и существующие в ней инструментальные средства.
Исходя из полученных данных и поставленных задач, был реализован
визуальный редактор-генератор лексических анализаторов Visual flex. Данный редактор-генератор является .Net приложением c многодокументным
оконным интерфейсом, позволяющий писать flex-спецификации с подсветкой синтаксиса и выделением конфликтов по мере написания регулярного
выражения, автоматически генерировать лексический анализатор по исходному тексту, пошагово выполнятся на тестовом входном файле и использовать точки останова на нём.
Так как разработанный редактор-генератор имеет образовательную
значимость, было дополнено соответствующее методическое пособие для
студентов, изучающих компиляторные курсы.
В перспективе в Visual flex можно добавить поддержку генерации лексических анализаторов на других языках, например C++ . Не исключается
также возможность расширения и улучшения функциональных возможностей.
Серебряков В. А. Основы конструирования компиляторов : учебное
пособие / В. А. Серебряков, М. П. Галочкин. – Москва : издательство
«Едиториал УРСС», 1999. – 193 с.
2 Свердлов С. З. Языки программирования и методы трансляции :
учебное пособие / С. З. Свердлов. – СПб.: издательство «Питер», 2007. – 638
с.
3 Молдованова О.В. Языки программирования и методы трансляции.:
Учебное пособие / О. В. Молдованова. – Новосибирск/СибГУТИ, 2012. –
134с.
4 Компиляторы: принципы, технологии и инструментарий, 2-е изд. :
учебное пособие / Альфред В. Ахо, Моника С. Лам, Рави Сети, Джеффри Д.
Ульфман. Москва : издательский дом «Вильямс», 2008 – 1184 с.
5 flex: The Fast Lexical Analyzer [Электронный ресурс] // Генератор
лексических анализаторов. – Режим доступа: http://flex.sourceforge.net/. (дата
обращения: 02.04.2016 г.)
6 VisualBNF [Электронный ресурс] // Генератор синтаксических
анализаторов. – Режим доступа: http://www.intralogic.eu/VisualBNF/ (дата
обращения: 09.05.2016 г.)
7 VisualLangLab - A Visual Parser-Generator IDE [Электронный
ресурс] // Генератор синтаксических анализаторов. – Режим доступа:
https://vll.java.net/ (дата обращения: 09.05.2016 г.)
8 Pavel Torgashov. Fast Colored TextBox for Syntax Highlighting
[Электронный ресурс] // Подсветка синтаксиса . – Режим доступа:
http://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntaxhighlighting (дата обращения: 20.05.2016 г.)
9 Шилдт Г. C# 4.0: полное руководство.: учебное пособие / Г. Шилдт.
– Москва : издательский дом «Вильямс», 2012 – 1056 с.Изм. Лист № докум. Подпись Дата
Лист
ДП – 230105.65 ПЗ 43
10 Рихтер Д. CLR via C#. Программирование на платформе Microsoft
.Net Framework 4.5 на языке C#. : Учебное пособие / Д. Рихтер. – СПб.:
Питер, 2016. – 896с.
11 MinGW-w64 - for 32 and 64 bit Windows [Электронный ресурс] //
Компилятор . - Режим доступа: https://sourceforge.net/projects/mingw-w64/
(дата обращения: 07.03.2016 г.)