Traductores e Intérpretes UCAB : Gramaticas, Derivacion, Formas Sentenciales, y Lenguajes Generados
This page last changed on Oct 09, 2006 by juanca.
Gramática
Gramática FormalEn informática y linguística, una gramática es un conjunto de reglas (usualmente recursivas) que describen de manera relativamente breve las cadenas, frases o secuencias válidas en un Lenguaje. Además, una gramática describe la estructura jerárquica o sintáctica de las frases de un Lenguaje. Una gramática es un conjunto de reglas de la forma:
por ejemplo:
el operador → puede leerse como "tiene esta forma" o "es reemplazable por". Cada una de las reglas se llama una producción. Definición formalUna gramática es una tupla G=(Σ,N,P,S), donde:
Forma de Escribir las ProduccionesFrecuentemente escribimos las producciones en la forma:
Lado Izquierdo y Derecho de una ProducciónDada una producción
llamamos a α a el lado izquierdo de la producción, y a β el lado derecho de la producción. DerivaciónUsamos el símbolo *⇒ para decir "deriva".
Omitimos el subíndice G cuando ello no se presta a confusión. También usamos los operadores ⇒*, ⇒+, y ⇒k, los cuales tienen los significados esperados: deriva en cero o más pasos, deriva en uno o más pasos, y deriva en k pasos. DerivaciónUna derivación de una sentencia ω es la secuencia de sustituciones de no-terminales que, partiendo del símbolo inicial S, produce como resultado ω.
Derivación Izquierda/DerechaUna derivación izquierda/derecha es la que se obtiene sustituyendo primero el no-terminal más a la izquierda/derecha en cada forma sentencial. Las formas senteciales así obtenidas se llaman formas sentenciales izquierdas/derechas. Como una Derivacion izquierda/derecha indica cuál símbolo no-terminal se substituye en cada paso de una Derivacion, entonces si le damos un número distinto a cada producción de la gramática es posible representar una derivación dando solo la secuencia de números de las producciones que se emplearon en cada paso. Forma SentencialUna forma sentencial de una Gramatica G=(Σ N, P, S) se define recursivamente:
Es decir, una forma sentencial es cualquier secuencia de símbolos terminales y no- terminales ω ∈ (Σ ∪ N)* tal que S ⇒*ω (se deriva en cero más pasos a partir de S). Para las Gramáticas Libres de Contexto, β es siempre un no-terminal. Forma Sentencial Izquierda/DerechaUna forma sentencial es izquierda (derecha) si es producto de una Derivacion izquierda (derecha). Gramatica AmbiguaUna gramática es ambigua si existe más de una Derivacion para la misma Forma Sentencial.
Lenguaje Generado por una GramáticaEl lenguaje generado por una gramática es el conjunto de todas formas sentenciales de la gramática compuestas por solo no-terminales. El lenguaje generado por una gramática es el conjunto de todas les secuencias de símbolos terminales que pueden ser derivadas por la gramática en un número finito de pasos.
|
Document generated by Confluence on Oct 04, 2010 11:25 |