Sei sulla pagina 1di 19

Universidad San Pedro

Teora de Lenguajes y Compiladores


Lenguajes y Gramticas

Heber Gomez Hurtado

Contenidos

Objetivos Tema de la presentacin

Objetivos

Definir que es un lenguaje. Definir que es un alfabeto. Definir que es una gramtica. Definir que es el proceso de derivacin y sus tipos.

Lenguaje (L)

Conjunto de sentencias con estructura bien definida y por lo general con significado.

L = {sentencias} Define que lneas de caracteres son validas. Define el significado de la construccin de un lenguaje. Asigna un significado o interpretacin a los smbolos.

Sintaxis:

Semntica:

Sentencia

Cadena generada a partir de una gramtica.

Alfabeto ()

Conjunto de smbolos para formar o construir un lenguaje.

= {x1, x2 , ... ,xn}

donde xi es un smbolo. Ejemplos 1.1:


= { 0, 1 } Alfabeto binario. = { a, e, i, o, u } Alfabeto vocales.

Cadena (o serie)

Secuencia de smbolos; se representa con una letra griega en minscula. Ejemplos:


= 011010 = iauoe

Longitud cadena:
cantidad de smbolos que forman la cadena.

Ejemplos:

||=6 ||=5 | 011 | = 3

Cadena (o serie)

Cadena vaca: Es una cadena cuya longitud es cero. Se representa con la letra griega epsilon
||=0

La cadena vaca acta como elemento neutro. Es decir, toda cadena concatenada con la cadena vaca es igual a la misma cadena. Ejemplos:

011 = 011 11 = 11 10 1 = 101

Clausura (*)

Son las diferentes combinaciones que se pueden hacer con los smbolos de un alfabeto e inclusive la cadena vaca. Se representa * , donde * se lee desde cero a ms. Ejemplo:

Para = {0 , 1} Su clausura es: * = {0 , 1}* = {0 , 1} 0 {0 , 1} 1 {0 , 1} 2 {0 , 1}n Es decir:


{0 , 1}0 = {0 , 1}1 = {0 , 1} { 0 , 1}2 = {0 , 1} {0 , 1} = {00, 01, 10, 11}

y as sucesivamente. Con lo cual:{0 , 1}* = {, 0 , 1, 00, 01, 10, 11, }

Clausura positiva (+)

Es la clausura, pero sin incluir la cadena vaca. Se representa +, donde + se lee desde uno a ms.
+ = * - { }

Gramtica (G)

Mecanismo que nos permite generar un lenguaje. Es un cudruplo de la forma: G = (, N, P, S) Donde:


: Conjunto de terminales (alfabeto) N : Conjunto de no terminales. P : Reglas de produccin.


Tienen la forma: (N )* (N )*

S : Smbolo inicial, S N y es nico.

Gramtica (G)

Ejemplo: G = ({0, 1}, {A, S}, P, S) Donde:


= {0, 1} N = {A, S} P son las reglas, que tienen la forma


S 0A1 0A 00A1 A

S = Smbolo Inicial

Gramtica (G)

Ejemplo: G = ({+, - , * , e}, {E, T, F}, P, S) Donde:


= {+, - , * , e} N = {E, T, F} P son las reglas, que tienen la forma


EE+T EET ET TT*F TF Fe

S = Smbolo Inicial

Derivacin

Es un proceso que consiste en sustituir el lado izquierdo (antecedente) por su lado derecho (consecuente) de las producciones o reglas con la finalidad de obtener sentencias de un lenguaje. Ejemplo: Considerando la gramtica siguiente

S 0A1 0A 00A1 A
(1) (3) (2) (2)

(1) (2) (3)

Derivando:

S 0A1 0 1 = 01
(1) (1) (3) (2) (3)

S 0A1 00A11 00 11 = 0011 S 0A1 00A11 000A111 000 111 = 000111

Derivacin

As sucesivamente, se puede seguir derivando, obtenindose el siguiente lenguaje:


Por extensin : L (G) = {01, 0011, 000111, } Por comprensin : L (G) = {0 N 1 N / N >= 1} Derivacin por la izquierda: Donde se van sustituyendo los no terminales que estn ms a la izquierda, uno por uno. Derivacin por la derecha: Donde se van sustituyendo los no terminales que estn ms a la derecha, uno por uno.

La derivacin puede ser:


Derivacin

Ejemplo: Considerando la siguiente gramtica de expresiones aritmticas

EE+T
|ET |T

(1)
(2) (3)

TT*F
|T/F |F

(4)
(5) (6) (7) (8)

Fe
|i

Probar si: e + i * e, es una sentencia del lenguaje generado por la gramtica.

Derivacin

Derivando por la izquierda:


(1) (3) (6) (7) (4) (6) (8) (7)

E+T T+T F+T e+T e+T*F e+F*F e+i*F e+i*e


Derivando por la derecha :
(1) (4) (7) (6) (7) (3) (6) (7)

E+T E+T*F E+T*e E+F*e E+i*e T+i*e F+i*e e+i*e

Ejercicios Propuestos

Expresar por extensin y por comprensin el lenguaje generado por las siguientes gramticas:

a) S XY

X aX |a Y Yb |b

b) S X X a Xb | ab c) S aSP |aPQ QPPQ aPab bPbb bQbe eQee

Trabajo

Elaborar un mapa conceptuales que permita explicar el tema Expresiones Regulares

Potrebbero piacerti anche