Articulo de referencia

Gramática recursiva

En informática , una gramática se denomina informalmente gramática recursiva si contiene reglas de producción recursivas , lo que significa que expandir un no terminal según est...

En informática , una gramática se denomina informalmente gramática recursiva si contiene reglas de producción recursivas , lo que significa que expandir un no terminal según estas reglas puede eventualmente dar como resultado una cadena que incluya nuevamente el mismo no terminal. De lo contrario , se denomina gramática no recursiva . [ 1 ]

Por ejemplo, una gramática para un lenguaje libre de contexto es recursiva por la izquierda si existe un símbolo no terminal A que puede pasar por las reglas de producción para producir una cadena con A (como el símbolo más a la izquierda). [ 2 ] [ 3 ] Todos los tipos de gramáticas en la jerarquía de Chomsky pueden ser recursivos y es la recursión la que permite la producción de conjuntos infinitos de palabras. [ 1 ]

Propiedades

Una gramática no recursiva solo puede producir un lenguaje finito; y cada lenguaje finito puede ser producido por una gramática no recursiva. [ 1 ] Por ejemplo, una gramática lineal produce solo una sola palabra.

Una gramática libre de contexto recursiva que no contiene reglas inútiles produce necesariamente un lenguaje infinito. Esta propiedad constituye la base de un algoritmo que puede comprobar eficientemente si una gramática libre de contexto produce un lenguaje finito o infinito. [ 4 ]

Referencias

  1. 1 2 3 Nederhof, Mark-Jan; Satta, Giorgio (2002), "Análisis sintáctico de gramáticas libres de contexto no recursivas", Actas de la 40.ª Reunión Anual de la Asociación de Lingüística Computacional (ACL '02) , Stroudsburg, PA, EE. UU.: Asociación de Lingüística Computacional, págs. 112–119 , doi : 10.3115/1073083.1073104 .
  2. Notas sobre teoría del lenguaje formal y análisis sintáctico Archivado el 28/08/2017 en Wayback Machine , James Power, Departamento de Ciencias de la Computación, Universidad Nacional de Irlanda, Maynooth, Condado de Kildare, Irlanda.
  3. Moore, Robert C. (2000), "Removing Left Recursion from Context-free Grammars", Actas de la 1.ª Conferencia del Capítulo Norteamericano de la Asociación de Lingüística Computacional (NAACL 2000) , Stroudsburg, PA, EE. UU.: Asociación de Lingüística Computacional, págs. 249–255 .
  4. Fleck, Arthur Charles (2001), Formal Models of Computation: The Ultimate Limits of Computing , serie AMAST en computación, vol. 7, World Scientific, Teorema 6.3.1, pág. 309, ISBN   9789810245009.