Ragel
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].
См. также
[править | править код]Примечания
[править | править код]- ↑ Dr. Adrian D. Thurston Архивная копия от 24 декабря 2013 на Wayback Machine at complang.org Last changed: Jul 14, 2013
- ↑ The ragel Open Source Project on Open Hub: Languages Page — 2006.
- ↑ Adrian D. Thurston. «Parsing Computer Languages with an Automaton Compiled from a Single Regular Expression. Архивировано 7 сентября 2012 года.» In: 11th International Conference on Implementation and Application of Automata (CIAA 2006), Lecture Notes in Computer Science, volume 4094, p. 285—286, Taipei, Taiwan, August 2006.
- ↑ Liqun Chen, Chris J. Mitchell, Andrew Martin (2009) Trusted Computing: Second International Conference, Trust 2009 Oxford, UK, April 6-8, 2009, Proceedings. p. 111
- ↑ В. С. Гуров, М. А. Мазин, А. А. Шалыто. Текстовый язык автоматного программирования // Научно-технический вестник СПбГУ ИТМО. — 2008. — Вып. 53. — С. 258—263. Архивировано 20 августа 2018 года.
- ↑ Ragel State Charts (англ.). Zed A. Shaw[англ.]. Дата обращения: 12 марта 2016. Архивировано из оригинала 10 марта 2016 года.
Ссылки
[править | править код]- colm.net/open-source/ragel/ — официальный сайт Ragel
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |