Estoy confundido sobre el ejemplo dado en el artículo de Wikipedia sobre gramática sensible al contexto:
https://en.wikipedia.org/wiki/Context-sensitive_grammar
Descargo de responsabilidad : ya he cambiado la sección discutida en el artículo de Wikipedia, por lo que el estado actual del artículo diferirá de lo que estoy discutiendo en esta pregunta. La versión original está aquí: https://en.wikipedia.org/w/index.php?title=Context-sensitive_grammar&oldid=747616366
La siguiente gramática, con el símbolo de inicio S, genera el lenguaje canónico sin contexto {anbncn: n ≥ 1}:
- S → abc
- S → a SB c
- c B → WB
- WB → WX
- WX → BX
- BX → B c
- b B → bb
No afirman directamente que esta gramática es sensible al contexto , pero la siguiente oración implica que la consideran sensible al contexto :
las reglas 3 a 6 permiten intercambiar sucesivamente cada cB por Bc (se necesitan cuatro reglas para eso ya que una regla cB → Bc no encajaría en el esquema αAβ → αγβ)
Entonces apelan a la forma canónica de las reglas gramaticales sensibles al contexto: αAβ → αγβ, lo que implica que toda la gramática es sensible al contexto.
Lo que me confunde es la regla # 3 , que parece no ajustarse al esquema αAβ → αγβ. Considero la terminal aquí como parte de , la variable como en el esquema, está vacía. Esto implica que no puede producir , ya que debe guardarse en el mismo lugar ( ).α B A β c B W B c c B → c …
¿Me perdí algo o esta gramática realmente se colocó aquí por error (ya que no es realmente sensible al contexto)?
fuente
Respuestas:
Si no me equivoco, es posible una gramática CS más simple. Aquí está:
Una derivación para la cadena esaaabbbccc
fuente
En realidad, como varios espectadores acordaron, la gramática original era incorrecta. Como notó @ EmilJeřábek, ya se discutió este problema aquí: https://en.wikipedia.org/wiki/Talk:Context-sensitive_grammar#Wrong_grammar_for_language
Entonces parece que ni la gramática de 7 reglas (que estaba investigando anteriormente en mi pregunta), ni la gramática de 9 reglas que estaba aquí antes y presente en artículos en otros idiomas, ambas son incorrectas. Esta gramática de 9 reglas:
es un ejemplo incorrecto ya que puede producir palabras de la forma "anbncn
aaa bb cccc
" `que no se ajusta a la fórmula .Por lo tanto, sugiero seguir la mejora de esta gramática reemplazando las reglas 3-5 por cuatro reglas:
Las Reglas 3-6 ayudarán a evitar problemas al reemplazar CB a WB y luego WC a BC.
EDITAR : Como @ EmilJeřábek sugirió nuevamente, las reglas # 7 y # 8 pueden simplificarse a una reglaB→b .fuente