En informática , una producción o regla de producción es una regla de reescritura que reemplaza algunos símbolos con otros símbolos. [ 1 ] Un conjunto finito de produccioneses el componente principal en la especificación de una gramática formal (específicamente una gramática generativa ).
En dichas gramáticas, un conjunto de producciones es un caso especial de relación en el conjunto de cadenas.(dóndees el operador estrella de Kleene ) sobre un conjunto finito de símbolosllamado vocabulario que define qué cadenas no vacías pueden sustituirse por otras. El conjunto de producciones es, por lo tanto, un subconjunto de tipo especial.
y las producciones se escriben luego en la formapara significar que(no confundir conse utiliza como notación de función, ya que puede haber múltiples reglas para la misma.). Dados dos subconjuntosLas producciones pueden estar restringidas para satisfacer, en cuyo caso se dice que las producciones "son de la forma. Diferentes opciones y construcciones deconducen a diferentes tipos de gramáticas. En general, cualquier producción de la forma
dóndees la cadena vacía (a veces también se denota), se denomina regla de borrado , mientras que las producciones que generarían cadenas de la nada, es decir, de la forma
Nunca están permitidos.
Para permitir que las reglas de producción creen oraciones significativas, el vocabulario se divide en conjuntos ( disjuntos ).ydesempeñando dos funciones diferentes:
- denota los símbolos terminales conocidos como un alfabeto que contiene los símbolos permitidos en una oración;
- denota símbolos no terminales , que contienen un símbolo de inicio distinguido, que son necesarias junto con las reglas de producción para definir cómo construir las oraciones.
En el caso más general de una gramática no restringida , una producción, se permite mapear cadenas arbitrariasyen(terminales y no terminales), siempre queno está vacío. Por lo tanto, las gramáticas no restringidas tienen producciones de la forma
o si queremos impedir que se modifiquen las oraciones terminadas
- ,
dóndeindica concatenación y obliga a que un símbolo no terminal esté siempre presente en el lado izquierdo de las producciones, ydenota conjunto menos o conjunto diferencia . Si no permitimos que aparezca el símbolo de inicio en(la palabra del lado derecho), tenemos que reemplazarconen el lado derecho. [ 2 ]
Los otros tipos de gramática formal en la jerarquía de Chomsky imponen restricciones adicionales sobre lo que constituye una producción. En particular, en una gramática libre de contexto , el lado izquierdo de una producción debe ser un único símbolo no terminal. Por lo tanto, las producciones tienen la forma:
Generación de gramática
Para generar una cadena en este lenguaje, se parte de una cadena que consta de un único símbolo inicial y, a continuación, se aplican sucesivamente las reglas (cualquier número de veces y en cualquier orden) para reescribirla. Este proceso finaliza cuando se obtiene una cadena que contiene solo terminales. El lenguaje consta de todas las cadenas que se pueden generar de esta manera. Cualquier secuencia de elecciones válidas durante este proceso de reescritura produce una cadena específica en el lenguaje. Si existen varias formas diferentes de generar esta única cadena, se dice que la gramática es ambigua .
Por ejemplo, supongamos que el alfabeto consta dey, con el símbolo de inicioy tenemos las siguientes reglas:
- 1.
- 2.
entonces comenzamos cony puede elegir una regla para aplicarle. Si elegimos la regla 1, reemplazamoscony obtener la cadena. Si volvemos a elegir la regla 1, reemplazamoscony obtener la cadena. Este proceso se repite hasta que solo tengamos símbolos del alfabeto (es decir,y). Si ahora elegimos la regla 2, reemplazamoscony obtener la cadenay ya están hechas. Podemos escribir esta serie de elecciones de forma más breve, usando símbolos:El lenguaje de la gramática es el conjunto de todas las cadenas que se pueden generar utilizando este proceso:.
Véase también
- Gramática formal
- Autómatas finitos
- gramática generativa
- Sistema L
- Regla de reescritura
- Forma Backus-Naur (Una forma compacta para escribir las producciones de una gramática libre de contexto).
- Regla de estructura de frases
- Sistema postcanónico (sistemas de producción de Emil Post: un modelo de computación).
Referencias
- ↑ "Gramáticas formales" (PDF) . Standford.edu .
- ↑ Véase Klaus Reinhardt: Prioritatszahlerautomaten und die Synchronization von Halbspursprachen Archivado el 17 de enero de 2018 en Wayback Machine ; Fakultät Informatik der Universität Stuttgart; 1994 (alemán)
- Gramática
- Procesamiento del lenguaje natural
- Lenguajes formales