Lenguajes y Gramáticas Teoría de Lenguajes Ing. Heber Gómez Hurtado
Alfabeto (Σ) <ul><li>Conjunto de símbolos para formar o construir un lenguaje. </li></ul><ul><ul><li>Σ = {x1, x2 , ... ,xn...
Cadena (o serie) <ul><li>Secuencia de símbolos; se representa con una letra griega en minúscula. </li></ul><ul><li>Ejemplo...
Cadena (o serie) <ul><li>Cadena vacía: </li></ul><ul><li>Es una cadena cuya longitud es cero. Se representa con la letra g...
Clausura (Σ*) <ul><li>Son las diferentes combinaciones que se pueden hacer con los símbolos de un alfabeto e inclusive la ...
Clausura positiva (Σ+) <ul><li>Es la clausura, pero sin incluir la cadena vacía. Se representa  Σ + , donde + se lee desde...
Gramática (G) <ul><li>Mecanismo que nos permite generar un lenguaje. Es un cuádruplo de la forma: </li></ul><ul><li>G = (Σ...
Gramática (G) <ul><li>Ejemplo: </li></ul><ul><ul><li>G = ({0, 1}, {A, S}, P, S) </li></ul></ul><ul><li>Donde: </li></ul><u...
Gramática (G) <ul><li>Ejemplo: </li></ul><ul><ul><li>G = ({+, - , * , e}, {E, T, F}, P, S) </li></ul></ul><ul><li>Donde: <...
Derivación <ul><li>Es un proceso que consiste en sustituir el lado izquierdo (antecedente) por su lado derecho (consecuent...
Derivación <ul><li>Así sucesivamente, se puede seguir derivando, obteniéndose el siguiente lenguaje: </li></ul><ul><ul><li...
Derivación <ul><li>Ejemplo: Considerando la siguiente gramática de expresiones aritméticas </li></ul><ul><ul><li>E -> E + ...
Derivación <ul><li>Derivando por la izquierda: </li></ul><ul><li>(1)  (3)  (6)  (7)  (4)  (6)  (8)  (7) </li></ul><ul><li>...
Sentencia <ul><li>Cadena generada a partir de una gramática. </li></ul>
Lenguaje (L) <ul><li>Conjunto de sentencias con estructura bien definida y por lo general con significado. </li></ul><ul><...
Ejercicios Propuestos <ul><li>Expresar por extensión y por comprensión el lenguaje generado por las siguientes gramáticas:...
Upcoming SlideShare
Loading in …5
×

Clase1 teoria

217 views
168 views

Published on

Lenguajes y gramaticas

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
217
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase1 teoria

  1. 1. Lenguajes y Gramáticas Teoría de Lenguajes Ing. Heber Gómez Hurtado
  2. 2. Alfabeto (Σ) <ul><li>Conjunto de símbolos para formar o construir un lenguaje. </li></ul><ul><ul><li>Σ = {x1, x2 , ... ,xn} </li></ul></ul><ul><li>donde xi es un símbolo. </li></ul><ul><li>Ejemplos 1.1: </li></ul><ul><ul><li>Σ = { 0, 1 } Alfabeto binario. </li></ul></ul><ul><ul><li>Σ = { a, e, i, o, u } Alfabeto vocales. </li></ul></ul>
  3. 3. Cadena (o serie) <ul><li>Secuencia de símbolos; se representa con una letra griega en minúscula. </li></ul><ul><li>Ejemplos 2.1: </li></ul><ul><ul><li>α = 011010 </li></ul></ul><ul><ul><li>β = iauoe </li></ul></ul><ul><li>Longitud cadena: </li></ul><ul><ul><li>cantidad de símbolos que forman la cadena. </li></ul></ul><ul><li>Ejemplos 2.2: </li></ul><ul><ul><li>| α | = 6 </li></ul></ul><ul><ul><li>| β | = 5 </li></ul></ul><ul><ul><li>| 011 | = 3 </li></ul></ul>
  4. 4. Cadena (o serie) <ul><li>Cadena vacía: </li></ul><ul><li>Es una cadena cuya longitud es cero. Se representa con la letra griega epsilon ξ </li></ul><ul><ul><li>| ξ | = 0 </li></ul></ul><ul><li>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. </li></ul><ul><li>Ejemplos 2.3: </li></ul><ul><ul><li>011 ξ = 011 </li></ul></ul><ul><ul><li>ξ 11 = 11 </li></ul></ul><ul><ul><li>10 ξ 1 = 101 </li></ul></ul>
  5. 5. Clausura (Σ*) <ul><li>Son las diferentes combinaciones que se pueden hacer con los símbolos de un alfabeto e inclusive la cadena vacía. </li></ul><ul><li>Se representa Σ* , donde * se lee desde cero a más. </li></ul><ul><li>Ejemplo: </li></ul><ul><ul><li>Para Σ = {0 , 1} </li></ul></ul><ul><ul><li>Su clausura es: </li></ul></ul><ul><ul><li>Σ* = {0 , 1}* = {0 , 1} 0 υ {0 , 1} 1 υ {0 , 1} 2 υ … υ {0 , 1} n </li></ul></ul><ul><ul><li>Es decir: </li></ul></ul><ul><ul><ul><li>{0 , 1} 0 = ξ </li></ul></ul></ul><ul><ul><ul><li>{0 , 1} 1 = {0 , 1} </li></ul></ul></ul><ul><ul><ul><li>{ 0 , 1} 2 = {0 , 1} {0 , 1} = {00, 01, 10, 11} </li></ul></ul></ul><ul><li>y así sucesivamente. </li></ul><ul><li>Con lo cual:{0 , 1}* = {ξ, 0 , 1, 00, 01, 10, 11, …} </li></ul>
  6. 6. Clausura positiva (Σ+) <ul><li>Es la clausura, pero sin incluir la cadena vacía. Se representa Σ + , donde + se lee desde uno a más. </li></ul><ul><ul><li>Σ + = Σ* - { ξ } </li></ul></ul>
  7. 7. Gramática (G) <ul><li>Mecanismo que nos permite generar un lenguaje. Es un cuádruplo de la forma: </li></ul><ul><li>G = (Σ, N, P, S) </li></ul><ul><li>Donde: </li></ul><ul><ul><li>Σ : Conjunto de terminales (alfabeto) </li></ul></ul><ul><ul><li>N : Conjunto de no terminales. </li></ul></ul><ul><ul><li>P : Reglas de producción. </li></ul></ul><ul><ul><ul><ul><li>Tienen la forma: (N υ Σ)* -> (N υ Σ)* </li></ul></ul></ul></ul><ul><ul><li>S : Símbolo inicial, S Є N y es único. </li></ul></ul>
  8. 8. Gramática (G) <ul><li>Ejemplo: </li></ul><ul><ul><li>G = ({0, 1}, {A, S}, P, S) </li></ul></ul><ul><li>Donde: </li></ul><ul><ul><li>Σ = {0, 1} </li></ul></ul><ul><ul><li>N = {A, S} </li></ul></ul><ul><ul><li>P son las reglas, que tienen la forma </li></ul></ul><ul><ul><ul><li>S -> 0A1 </li></ul></ul></ul><ul><ul><ul><li>0A -> 00A1 </li></ul></ul></ul><ul><ul><ul><li>A ->ξ </li></ul></ul></ul><ul><ul><li>S = Símbolo Inicial </li></ul></ul>
  9. 9. Gramática (G) <ul><li>Ejemplo: </li></ul><ul><ul><li>G = ({+, - , * , e}, {E, T, F}, P, S) </li></ul></ul><ul><li>Donde: </li></ul><ul><ul><li>Σ = {+, - , * , e} </li></ul></ul><ul><ul><li>N = {E, T, F} </li></ul></ul><ul><ul><li>P son las reglas, que tienen la forma </li></ul></ul><ul><ul><ul><li>E -> E + T </li></ul></ul></ul><ul><ul><ul><li>E -> E – T </li></ul></ul></ul><ul><ul><ul><li>E -> T </li></ul></ul></ul><ul><ul><ul><li>T -> T * F </li></ul></ul></ul><ul><ul><ul><li>T -> F </li></ul></ul></ul><ul><ul><ul><li>F -> e </li></ul></ul></ul><ul><ul><li>S = Símbolo Inicial </li></ul></ul>
  10. 10. Derivación <ul><li>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. </li></ul><ul><li>Ejemplo: Considerando la gramática siguiente </li></ul><ul><ul><li>S -> 0A1 (1) </li></ul></ul><ul><ul><li>0A -> 00A1 (2) </li></ul></ul><ul><ul><li>A ->ξ (3) </li></ul></ul><ul><li>Derivando: </li></ul><ul><ul><li>(1) (3) </li></ul></ul><ul><ul><li>S  0A1  0 ξ 1 = 01 </li></ul></ul><ul><ul><li>(1) (2) (3) </li></ul></ul><ul><ul><li>S  0A1  00A11  00 ξ 11 = 0011 </li></ul></ul><ul><ul><li>(1) (2) (2) (3) </li></ul></ul><ul><ul><li>S  0A1  00A11  000A111  000 ξ 111 = 000111 </li></ul></ul>
  11. 11. Derivación <ul><li>Así sucesivamente, se puede seguir derivando, obteniéndose el siguiente lenguaje: </li></ul><ul><ul><li>Por extensión : L (G) = {01, 0011, 000111, …} </li></ul></ul><ul><ul><li>Por comprensión : L (G) = {0 N 1 N / N >= 1} </li></ul></ul><ul><li>La derivación puede ser: </li></ul><ul><ul><li>Derivación por la izquierda: Se van sustituyendo los no terminales que están más a la izquierda, uno por uno. </li></ul></ul><ul><ul><li>Derivación por la derecha: Se van sustituyendo los no terminales que están más a la derecha, uno por uno. </li></ul></ul>
  12. 12. Derivación <ul><li>Ejemplo: Considerando la siguiente gramática de expresiones aritméticas </li></ul><ul><ul><li>E -> E + T (1) </li></ul></ul><ul><ul><ul><ul><li>| E – T (2) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>| T (3) </li></ul></ul></ul></ul><ul><ul><li>T -> T * F (4) </li></ul></ul><ul><ul><ul><ul><li>| T / F (5) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>| F (6) </li></ul></ul></ul></ul><ul><ul><li>F -> e (7) </li></ul></ul><ul><ul><ul><ul><li>| i (8) </li></ul></ul></ul></ul><ul><li>Probar si: e + i * e es una sentencia del lenguaje generado por la gramática. </li></ul>
  13. 13. Derivación <ul><li>Derivando por la izquierda: </li></ul><ul><li>(1) (3) (6) (7) (4) (6) (8) (7) </li></ul><ul><li>E  E+T  T+T  F+T  e+T  e+T*F  e+F*F  e+i*F  e+i*e </li></ul><ul><li>Derivando por la derecha : </li></ul><ul><li>(1) (4) (7) (6) (7) (3) (6) (7) </li></ul><ul><li>E  E+T  E+T*F  E+T*e  E+F*e  E+i*e  T+i*e  F+i*e  e+i*e </li></ul>
  14. 14. Sentencia <ul><li>Cadena generada a partir de una gramática. </li></ul>
  15. 15. Lenguaje (L) <ul><li>Conjunto de sentencias con estructura bien definida y por lo general con significado. </li></ul><ul><ul><li>L = {sentencias} </li></ul></ul><ul><li>Sintaxis: </li></ul><ul><ul><li>Define que líneas de caracteres son validas. </li></ul></ul><ul><li>Semántica: </li></ul><ul><ul><li>Define el significado de la construcción de un lenguaje. Asigna un significado o interpretación a los símbolos. </li></ul></ul>
  16. 16. Ejercicios Propuestos <ul><li>Expresar por extensión y por comprensión el lenguaje generado por las siguientes gramáticas: </li></ul><ul><li>a) S  X Y </li></ul><ul><li>X  a X </li></ul><ul><ul><ul><li>|a </li></ul></ul></ul><ul><ul><li>Y  Y b </li></ul></ul><ul><ul><ul><li>| b </li></ul></ul></ul><ul><li>b) S  X </li></ul><ul><li>X  a X b </li></ul><ul><li>| a b </li></ul><ul><li>c) S  a S P </li></ul><ul><ul><li>|a P Q </li></ul></ul><ul><ul><li>QP  PQ </li></ul></ul><ul><ul><li>aP  ab </li></ul></ul><ul><ul><li>bP  bb </li></ul></ul><ul><ul><li>bQ  be </li></ul></ul><ul><ul><li>eQ  ee </li></ul></ul>

×