Click here to load reader
Upload
waralivt
View
148
Download
2
Embed Size (px)
Citation preview
Universidad Fermín Toro
Vicerrectorado Académico
Facultad de Ingeniería
Escuela de Computación
UNIDAD III
INFORME
Integrante:
Wilcar Rojas
13313297
Cabudare; Julio 2013
Realice un cuadro donde se destaquen las principales características de los tres (3)
tipos de gramáticas estudiadas.
CARACTRISITICAS
Gramáticas Tipo 0 Gramáticas Tipo 1 Gramática libre de contexto
Sin restricciones. Gramáticas sensibles al contexto.
De contexto libre.
Incluye a todas las gramáticas formales.
Dependiente del contexto.
Es una gramática formal en la que cada regla de producción es de la forma:
V → w
Generan todos los lenguajes capaces de ser reconocidos por una máquina de Turing.
Estas gramáticas tienen reglas de la forma
con
un no terminal y , y cadenas de terminales
y no terminales.
Permiten describir la mayoría de los lenguajes de programación.
Los lenguajes son conocidos como lenguajes recursivamente enumerables.
Los lenguajes descritos por estas gramáticas son exactamente todos aquellos lenguajes reconocidos por una máquina de Turing determinista cuya cinta de memoria está acotada por un cierto número entero de veces sobre la longitud de entrada, también conocidas como autómatas linealmente acotados.
La sintaxis de la mayoría de lenguajes de programación está definida mediante gramáticas libres de contexto.
Para cada una de las gramáticas estudiadas cite un ejemplo.
- Gramática tipo 0
Ejemplo:
Ejemplo: Sea la gramática definida por: G= ({S}, {0,1},S,P) donde
P={(S® 000S111), (0S1 ®01)} .Determinar el lenguaje que genera.
Sería:
L(G)={0(3n+1)1(3n+1)/ n>=0}
- Gramática tipo 1
Ejemplo: Construye una gramática tipo 1 que genere el lenguaje
L = {a(bc)n / n > = 1}
Solución
S→ aB
B → bc B / bc
- Gramática libre de contexto
Ejemplo: Una gramática libre de contexto para un lenguaje consistente en
todas las cadenas que se pueden formar con las letras a y b, habiendo un
número diferente de una que de otra, sería:
S → U | V
U → TaU | TaT
V → TbV | TbT
T → aTbT | bTaT | ε
T genera todas las cadenas con la misma cantidad de letras a que b, U genera
todas las cadenas con más letras a, y V todas las cadenas con más letras b.
Defina Árbol de Derivación de gramáticas y explique su uso.
Llamamos derivacióna una secuencia de pasos de derivación que generan una
palabra x L(G) a partir del símbolo privilegiado S.
Un árbol de derivación permite mostrar gráficamente cómo se puede derivar
cualquier cadena de un lenguaje a partir del símbolo distinguido de una gramática que
genera ese lenguaje.
A cada derivación de una palabra producida por una gramática corresponde un
árbol de la derivación, cuya raíz es la variable inicial. Los hijos de cada nodo son los
elementos de la parte derecha de la regla de producción que se aplica en cada paso de
la derivación.
A un mismo árbol de derivación le corresponden, en general, múltiples
derivaciones para generar la misma palabra. Cada una de estas derivaciones tiene el
mismo número de pasos. Lo que varía de una a otra es el orden de sustitución de las
variables cuando se aplican las reglas de producción de la gramática.
En el árbol de derivación se expresa la sustitución de los símbolos no terminales
de acuerdo a la aplicación de las reglas gramaticales, pero no el orden de sustitución
en cada nivel del árbol, orden que aparece en la secuencia de pasos de cada
derivación. Así, en la última derivación se sustituyó primeramente la S más a la
derecha de la cadena, mientras que en la primera derivación se optó por sustituir la
variable S más a la izquierda.
Uso:Para la evaluación de una expresión (binario)
Aplica el analizador, porque determina el orden en el que el código será
ejecutado.
El árbol binario (padre: operación binaria; hijos: operandos) de una expresión
admite un recorrido (raíz, hijo derecho, hijo izquierdo) que es la evaluación de la
expresión.
Explique ampliamente que significa: Sensible al Contexto y Libre del
Contexto, justifique su respuesta.
Libre del contexto: Los lenguajes libres de contexto son aquellos
reconocibles por un autómata de pila. Las gramáticas libres de contexto tienen
una expresividad limitada y sólo pueden expresar un conjunto limitado de
lenguajes. Informalmente la razón de esto es que la memoria de un lenguaje
de este tipo es limitada, la gramática no puede recordar la presencia de una
construcción en una entrada arbitrariamente larga y esto es necesario en un
lenguaje en el que por ejemplo una variable debe ser declarada antes de que
pueda ser referenciada. Las gramáticas más complejas no pueden ser
analizadas de forma eficiente. Por estas razones es común crear un analizador
permisivo para una gramática libre de contexto que acepta un superconjunto
del lenguaje (acepta algunas construcciones inválidas), después del análisis
inicial las construcciones incorrectas pueden ser filtradas.
Normalmente es fácil definir una gramática libre de contexto que
acepte todas las construcciones de un lenguaje pero por el contrario es
prácticamente imposible construir una gramática libre de contexto que admita
solo las construcciones deseadas. En cualquier caso la mayoría de
analizadores no son construidos a mano sino usando generadores automáticos.
Sensible al Contexto: Los lenguajes sensibles al contexto contiene
reglas y restricciones al momento de escribir la forma de la gramática.
También es aquel que no es libre de contexto, sin aceptar construcciones al
lenguaje de la gramática.
URL: http://youtu.be/soaVJFKvIE4