Está en la página 1de 20

UNIVERSIDAD NACIONAL DE CAÑETE

“Principio Activo: Innovador y Humanista”

GRAMATICA ESTRUCTURAL
Y ÁRBOLES DE DERIVACIÓN

Ing. Luis Alberto Loo Parián


loop.luis@live.com
GRAMÁTICA ESTRUCTURAL
Una gramática formal es un conjunto de reglas para reescribir cadenas de
caracteres, junto con un símbolo inicial desde el cual debe comenzar la reescritura.

Por lo tanto, una gramática formal generalmente se piensa como una generadora
de lenguajes. Sin embargo, a veces también puede ser usada como la base para un
"reconocedor": una función que determina si una cadena cualquiera pertenece a
un lenguaje o es gramaticalmente incorrecta.

Hay distintos tipos de gramáticas formales que generan lenguajes formales.


Imaginemos una gramática con estas dos reglas:

1.A → bA
2.A → c

Ing° Luis Loo Parián 2


GRAMÁTICA ESTRUCTURAL
El elemento en mayúsculas es el símbolo inicial. Los elementos en minúsculas son
los símbolos terminales. Para generar cadenas de caracteres, la idea es sustituir el
símbolo inicial de la izquierda por los símbolos de la derecha, y luego repetir el
proceso hasta que sólo haya símbolos terminales.

Por ejemplo:

A → bA → bbA → bbbA → bbbc

Esta gramática da lugar a un lenguaje formal que consiste en el conjunto de todas


las cadenas de caracteres que pueden ser generadas por medio ellas.

Por ejemplo: bbbc, bbbbbbbbc, c, bc, etc.

Ing° Luis Loo Parián 3


GRAMÁTICA ESTRUCTURAL
En la definición clásica que dio Noam Chomsky en la década de 1950, una gramática
formal de estructura sintagmática (ES-gramática) es una cuádrupla G = (N,T,S,P)
donde:

•N es un conjunto finito de símbolos no terminales (variables).


•T es un conjunto finito de símbolos terminales (constantes), disjunto con N.
•S es un símbolo distinguido de N, el símbolo inicial.
•P es un conjunto finito de reglas de producción

Ing° Luis Loo Parián 4


ÁRBOLES DE DERIVACIÓN

Ing° Luis Loo Parián 5


ÁRBOLES DE DERIVACIÓN

6
Ing° Luis Loo Parián
AMBIGÜEDAD

Ing° Luis Loo Parián 7


EJEMPLO DE AMBIGUEDAD

Ing° Luis Loo Parián 8


EJEMPLO DE AMBIGUEDAD

Ing° Luis Loo Parián 9


EJEMPLO DE AMBIGUEDAD

Ing° Luis Loo Parián 10


EJEMPLO DE AMBIGUEDAD

11
Ing° Luis Loo Parián
EJERCICIOS
1.- G=({x,y}, {C,A,B,S}, S, P)

P={S::=Cx, S::=Cy, S::=By, S::=Ax, S::=x, S::=y, A::=Ax, A::=Cx, A::=x, B::=By, B::=yA, C::=xA}

2.- G=({a,b,c}, {S,B}, S, P)

P={S::=abc, S::=aBSc, Ba::=aB, Bb::=bb}

3.- Dada la gramática G, se pide:

G=({a,b,c}, {S,A,B}, S, P), P={S::=λ, S::=aAc, A::=aA, A::=Ac, A::=B, B::=b, B::=Bb}

a) Especificar el tipo de G en la jerarquía de Chomsky, razonadamente.


b) Construir 2 árboles de derivación para una misma palabra perteneciente a
L(G)

12
Ing° Luis Loo Parián
ESTRUCTURA DE SELECCIÓN MULTIPLE

La estructura de selección múltiple switch permite seleccionar una ruta de entre varias
rutas posibles en base al valor de una variable selector que se compara con una lista de
constantes enteras o de carácter c1, c2, c3, ..., cn. Cuando se encuentra una
correspondencia entre el valor de la variable selector y una constante, se ejecuta la
acción o el grupo de acciones asociadas a dicha constante. Si el selector no coincide con
ninguna constante, se efectúa la acción por defecto, si es que existe

Ing° Luis Loo Parián 13


ESTRUCTURA DE SELECCIÓN MULTIPLE

Ing° Luis Loo Parián 14


ESTRUCTURA DE SELECCIÓN MULTIPLE
1.- Diseñe un programa que determine el nombre de un mes conociendo los
valores numéricos del mes.

Inicio caso 6 : nombre = "Junio"


// Declaración de variables caso 7 : nombre = "Julio"
entero mes caso 8 : nombre = "Agosto"
cadena nombre
caso 9 : nombre = "Setiembre"
// Entrada de datos
Leer mes caso 10: nombre = "Octubre"
// Determina el nombre del mes caso 11: nombre = "Noviembre"
según( mes ){ defecto: nombre = "Diciembre"
caso 1 : nombre = "Enero" }
caso 2 : nombre = "Febrero" // Salida
caso 3 : nombre = "Marzo" Imprimir nombre
caso 4 : nombre = "Abril" Fin
caso 5 : nombre = "Mayo"

Ing° Luis Loo Parián 15


ESTRUCTURA DE SELECCIÓN MULTIPLE

2.- En el siguiente ejercicio, reemplace la estructura if...else...if por la estructura


switch.

Considere que producto es de tipo int .

if( producto = 0 )
precio = 25;
else if( producto = 1 )
precio = 15;
else if( producto = 2 )
precio = 10;
else
precio = 12;

Ing° Luis Loo Parián 16


ESTRUCTURA DE SELECCIÓN MULTIPLE

El equivalente switch es el siguiente:

switch( producto ){
case 0:
precio = 25;
break;
case 1:
precio = 15;
break;
case 2:
precio = 10;
break;
default:
precio = 12;
}

Ing° Luis Loo Parián 17


ACTIVIDAD

Ing° Luis Loo Parián 18


ACTIVIDAD

Ing° Luis Loo Parián 19


GRACIAS POR SU
ATENCIÓN

Ing° Luis Loo Parián 20

También podría gustarte