16
Lenguajes y Gramáticas Lenguajes y Gramáticas Teoría de Lenguajes Ing. Heber Gómez Hurtado

Clase1 teoria de lenguajes

Embed Size (px)

Citation preview

Page 1: Clase1   teoria de lenguajes

Lenguajes y GramáticasLenguajes y Gramáticas

Teoría de Lenguajes

Ing. Heber Gómez Hurtado

Page 2: Clase1   teoria de lenguajes

Alfabeto (Σ)

Conjunto de símbolos para formar o construir un lenguaje. Σ = {x1, x2 , ... ,xn}

donde xi es un símbolo. Ejemplos 1.1:

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

Page 3: Clase1   teoria de lenguajes

Cadena (o serie)

Secuencia de símbolos; se representa con una letra griega en minúscula.

Ejemplos 2.1: α = 011010 β = iauoe

Longitud cadena:cantidad de símbolos que forman la cadena.

Ejemplos 2.2: | α | = 6 | β | = 5 | 011 | = 3

Page 4: Clase1   teoria de lenguajes

Cadena (o serie)

Cadena vacía: Es una cadena cuya longitud es cero. Se

representa con la letra griega epsilon ξ| ξ | = 0

La cadena vacía actúa como elemento neutro. Es decir, toda cadena concatenada con la cadena vacía es igual a la misma cadena.

Ejemplos 2.3: 011 ξ = 011 ξ 11 = 11 10 ξ 1 = 101

Page 5: Clase1   teoria de lenguajes

Clausura (Σ*)

Son las diferentes combinaciones que se pueden hacer con los símbolos de un alfabeto e inclusive la cadena vacía.

Se representa Σ* , donde * se lee desde cero a más. 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, …}

Page 6: Clase1   teoria de lenguajes

Clausura positiva (Σ+)

Es la clausura, pero sin incluir la cadena vacía. Se representa Σ+, donde + se lee desde uno a más.Σ+ = Σ* - { ξ }

Page 7: Clase1   teoria de lenguajes

Gramática (G)

Mecanismo que nos permite generar un lenguaje. Es un cuádruplo de la forma:

G = (Σ, N, P, S) Donde:

Σ : Conjunto de terminales (alfabeto) N : Conjunto de no terminales. P : Reglas de producción.

Tienen la forma: (N υ Σ)* (N υ Σ)*→ S : Símbolo inicial, S Є N y es único.

Page 8: Clase1   teoria de lenguajes

Gramática (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 = Símbolo Inicial

Page 9: Clase1   teoria de lenguajes

Gramática (G)

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

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

E E + T→ E E – T→ E T→ T T * F→ T F→ F e→

S = Símbolo Inicial

Page 10: Clase1   teoria de lenguajes

Derivación

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 gramática siguiente S 0A1 (1)→ 0A 00A1 (2)→ A ξ (3)→

Derivando: (1) (3) S 0A1 0 ξ 1 = 01 (1) (2) (3) S 0A1 00A11 00 ξ 11 = 0011 (1) (2) (2) (3) S 0A1 00A11 000A111 000 ξ 111 = 000111

Page 11: Clase1   teoria de lenguajes

Derivación

Así sucesivamente, se puede seguir derivando, obteniéndose el siguiente lenguaje: Por extensión : L (G) = {01, 0011, 000111, …} Por comprensión : L (G) = {0 N 1 N / N >= 1}

La derivación puede ser: Derivación por la izquierda: Se van sustituyendo los

no terminales que están más a la izquierda, uno por uno.

Derivación por la derecha: Se van sustituyendo los no terminales que están más a la derecha, uno por uno.

Page 12: Clase1   teoria de lenguajes

Derivación Ejemplo: Considerando la siguiente

gramática de expresiones aritméticas E E + T (1)→

| E – T (2)| T (3)

T T * F (4)→| T / F (5)| F (6)

F e → (7)| i (8)

Probar si: e + i * e es una sentencia del lenguaje generado por la gramática.

Page 13: Clase1   teoria de lenguajes

Derivación Derivando por la izquierda: (1) (3) (6) (7) (4) (6) (8) (7)

E 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 E+T E+T*F E+T*e E+F*e E+i*e T+i*e F+i*e e+i*e

Page 14: Clase1   teoria de lenguajes

Sentencia

Cadena generada a partir de una gramática.

Page 15: Clase1   teoria de lenguajes

Lenguaje (L)

Conjunto de sentencias con estructura bien definida y por lo general con significado. L = {sentencias}

Sintaxis: Define que líneas de caracteres son validas.

Semántica: Define el significado de la construcción de un

lenguaje. Asigna un significado o interpretación a los símbolos.

Page 16: Clase1   teoria de lenguajes

Ejercicios Propuestos

Expresar por extensión y por comprensión el lenguaje generado por las siguientes gramáticas:

a) S X Y X a X

|a Y Y b

| b

b) S X X a X b | a b

c) S a S P |a P Q QP PQ aP ab bP bb bQ be eQ ee