Ragel

Ragel
Tipo de compilador de máquinas de estado
Desarrollador Adrián Thurston [1]
Escrito en C++ [2]
Sistema operativo Similar a Unix , Windows
ultima versión 6.10 (2017-03-24)
Licencia Licencia Pública General GNU
Sitio web complang.org/ragel/
 Archivos multimedia en Wikimedia Commons

Ragel  es un compilador de máquinas de estado que produce código fuente en C , C++ , C# , Objective-C , D , Java , OCaml , Go y Ruby [3] .

Características

El código fuente de la máquina de estado de Ragel es un lenguaje de expresión regular extendido [4] y/o un diagrama de estado de máquina de estado . Ragel es muy adecuado para construir analizadores léxicos y especificar protocolos de transferencia de datos [5] .

Ragel le permite inyectar acciones definidas por el usuario en cualquier punto de la ejecución de un autómata. Para resolver el no determinismo, se proporciona un sistema de prioridad para los operadores de lenguaje regular.

Ragel admite la visualización del autómata generado utilizando graphviz .

Ejemplos de aplicación

Zed Shaw usó Ragel para su servidor web Mongrel al escribir un analizador de solicitudes personalizadas HTTP de alto rendimiento [6] .

Véase también

Notas

  1. Dra. Adrian D. Thurston Archivado el 24 de diciembre de 2013 en Wayback Machine en complang.org Última modificación: 14 de julio de 2013
  2. The ragel Open Source Project en Open Hub: Página de idiomas - 2006.
  3. Adrián D. Thurston. « Análisis de lenguajes informáticos con un autómata compilado a partir de una sola expresión regular. Archivado desde el original el 7 de septiembre de 2012. » En: 11ª Conferencia Internacional sobre Implementación y Aplicación de Autómatas (CIAA 2006), Lecture Notes in Computer Science, volumen 4094 , p. 285-286, Taipei, Taiwán, agosto de 2006.
  4. Liqun Chen, Chris J. Mitchell, Andrew Martin (2009) Trusted Computing: Second International Conference, Trust 2009 Oxford, Reino Unido, 6-8 de abril de 2009, Actas . pags. 111
  5. V. S. Gurov, M. A. Mazin, A. A. Shalyto. Lenguaje de texto de programación automática  // Boletín científico y técnico de la Universidad Estatal de San Petersburgo ITMO . - 2008. - Edición. 53 . - S. 258-263 . Archivado desde el original el 20 de agosto de 2018.
  6. Ragel State Charts  (inglés)  (enlace no disponible) . Zed A. Shaw . Consultado el 12 de marzo de 2016. Archivado desde el original el 10 de marzo de 2016.

Enlaces