Ragel | |
---|---|
Тип | компилятор конечных автоматов |
Разработчик | Adrian Thurston[1] |
Написана на | C++[2] |
Операционные системы | Unix-like, Windows |
Последняя версия | 6.10 (2017-03-24) |
Репозиторий | github.com/adrian-thurst… |
Лицензия | GNU General Public License |
Сайт | complang.org/ragel/ |
Медиафайлы на Викискладе |
Ragel — компилятор конечных автоматов, производящий исходный код на C, C++, C#, Objective-C, D, Java, OCaml, Go и Ruby[3].
Исходным текстом конечного автомата для Ragel служит расширенный язык регулярных выражений[4] и/или диаграмма состояний конечного автомата. Ragel хорошо подходит для построения лексических анализаторов и спецификации протоколов передачи данных[5].
Ragel позволяет внедрять в любой точке выполнения автомата определяемые пользователем действия. С целью разрешения недетерминизма предусмотрена система приоритетов для операторов регулярного языка.
Ragel поддерживает визуализацию генерируемого автомата с помощью graphviz.
Зед Шоу[англ.] использовал Ragel для своего веб-сервера Mongrel при написании высокопроизводительного анализатора пользовательских HTTP-запросов[6].
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |