Ragel
Тип | |
---|---|
Разработчик |
Adrian Thurston[1] |
Операционная система | |
Последняя версия |
6.9 (2014-10-14) |
Лицензия | |
Сайт |
[www.complang.org/ragel/ plang.org/ragel/] |
Ragel — компилятор конечных автоматов, производящий исходный код на C, C++, C#, Objective-C, D, Java, OCaml, Go и Ruby[2].
Особенности
Исходным текстом конечного автомата для Ragel служит расширенный язык регулярных выражений[3] и/или диаграмма состояний конечного автомата. Ragel хорошо подходит для построения лексических анализаторов и спецификации протоколов передачи данных[4].
Ragel позволяет внедрять в любой точке выполнения автомата определяемые пользователем действия. С целью разрешения недетерминизма предусмотрена система приоритетов для операторов регулярного языка.
Ragel поддерживает визуализацию генерируемого автомата с помощью graphviz.
Примеры применения
Зед Шоу[en] использовал Ragel для своего веб-сервера Mongrel при написании высокопроизводительного анализатора пользовательских HTTP-запросов[5].
См. также
Примечания
- ↑ [www.complang.org/thurston/ Dr. Adrian D. Thurston] at complang.org Last changed: Jul 14, 2013
- ↑ Adrian D. Thurston. «[www.complang.org/thurston/thurston_CIAA_06_sing_regex.pdf Parsing Computer Languages with an Automaton Compiled from a Single Regular Expression.]» 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
- ↑ В. С. Гуров, М. А. Мазин, А. А. Шалыто [is.ifmo.ru/works/2008/Vestnik/53/23-textual-language-for-automata-based-programming.pdf Текстовый язык автоматного программирования] // Научно-технический вестник СПбГУ ИТМО. — 2008. — Вып. 53. — С. 258-263.
- ↑ [zedshaw.com/archive/ragel-state-charts/ Ragel State Charts] (en-US). Zed A. Shaw[en]. Проверено 12 марта 2016.
Литература
Ссылки
- [www.colm.net/open-source/ragel/ m.net/open-source/ragel/] — официальный сайт Ragel
Это заготовка статьи о свободном программном обеспечении. Вы можете помочь проекту, дополнив её. |