ANÁLISIS LÉXICO
ANÁLISIS LÉXICO• OBJETIVO: Reconocimiento de cadenas• TOKENS: Secuencia de caracteres que  representan una unidad de infor...
ANÁLISIS LÉXICO• CAMPOS DE UN TOKEN:  – Valor de cadena o lexema (uno o varios)  Ejm:     Token WHILE, su valor de cadena ...
EXPRESIONES REGULARESNotación estándar para representar un conjuntode cadenas que forman parte de un LENGUAJE.            ...
EXPRESIONES REGULARESLENGUAJE          ALFABETO                   SIMBOLOS       NÚMEROESPAÑOL           [A—Z][a—z]       ...
EXPRESIONES REGULARES  L(a) = {a}  L(Ɛ) = {Ɛ}  L(ɸ) = { }• Operaciones:  – Selección: a|b       • L (a|b) = L(a) U L(b) = ...
EXPRESIONES REGULARESEJERCICIOS  (a|b|c|d|e) = {a,b,c,d,e}  (a|b*) = a, b, bb, bbb  ¿Esta expresión (ab| c )* puede genera...
EXPRESIONES REGULARES• Precedencia1. Repetición2. Concatenación3. Selección  a|bc*   ->    (a|b)c* (a|bc)*                ...
EXPRESIONES REGULARES1. Ejercicios  Considerando la precedencia de los operadores,  determine al menos 10 cadenas válidas ...
EXPRESIONES REGULARESNOMBRES PARA EXPRESIONES REGULARESIdentificador que denota un conjunto de alternativas en unaexpresió...
EXPRESIONES REGULARES                     Si ∑= {a,b,c} obtenga una expresión regular para:EJERCICIOS:Ejemplo 2.1         ...
EXPRESIONES REGULARESEJERCICIOS:   Qué conjunto de cadenas reconoce esta expresión:Ejemplo 2.5   EjemploRevisar       b*(a...
EXPRESIONES REGULARESEJERCICIOS:          Qué conjunto de cadenas reconoce esta expresión:Ejemplo 2.5              Ejemplo...
EXPRESIONES REGULARESEXTENCIONES PARA LAS EXPRESIONES REGULARES1. Una o más repeticiones: “+”  a+ = {a, aa, aaa}          ...
EXPRESIONES REGULARESEJERCICIOS: Para un lenguaje con alfabeto: ∑= ,a,b}1. Construir una expresión regular para un   conju...
EXPRESIONES REGULARES
QUÉ ES UN AUTÓMATA• Autómatas finitos: permiten reconocer las  cadenas dadas por las expresiones.• Máquina conceptual, que...
Autómatas finitos• Un conjunto de estados y transiciones entre esos estados.• Su tarea es reconocer una construcción de un...
• http://campusvirtual.unex.es/ebooks/files/file  /TeoriaAutomatas.pdf
Upcoming SlideShare
Loading in...5
×

Clase2

3,443

Published on

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
3,443
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Clase2"

  1. 1. ANÁLISIS LÉXICO
  2. 2. ANÁLISIS LÉXICO• OBJETIVO: Reconocimiento de cadenas• TOKENS: Secuencia de caracteres que representan una unidad de información de un lenguaje: – Palabras reservadas: var, while, for, etc – Símbolos: (), -,*,>,<,=, $ – Identificadores: nombres de variables -> $edad
  3. 3. ANÁLISIS LÉXICO• CAMPOS DE UN TOKEN: – Valor de cadena o lexema (uno o varios) Ejm: Token WHILE, su valor de cadena es while Token digito, su valor de cadena es “2”, “35”, “1456” – Valor numérico Token digito, si su valor de cadena es “1456”, su valor numérico es 1456 Tabla de símbolos: Nombre $a Valor de cadena “1456” Valor numérico 1456 EXPRESIONES REGULARES Y AUTÓMATAS
  4. 4. EXPRESIONES REGULARESNotación estándar para representar un conjuntode cadenas que forman parte de un LENGUAJE. LENGUAJE ALFABETO SÍMBOLOS NÚMEROS
  5. 5. EXPRESIONES REGULARESLENGUAJE ALFABETO SIMBOLOS NÚMEROESPAÑOL [A—Z][a—z] “#$%/()¨*´ [0—9]ITALIANO 21 letras menos ñ, j,k,w,x Apóstrofe (‘) [0—9] L = Lenguaje ∑ = alfabeto (símbolos y números) W = cadena W = combinación de alfabeto, símbolos y números Longitud de cadena: número de elementos de la cadena |w| |abc| =3 ||=0 =ᵋConjunto de todas las cadenas de un lenguaje sobre un alfabeto ∑ , se denomina CERRADURA ∑* Si ∑ =,a-, entonces ∑* = ,Ɛ, a, aa, aaa, aaaa, aaaaa, …-
  6. 6. EXPRESIONES REGULARES L(a) = {a} L(Ɛ) = {Ɛ} L(ɸ) = { }• Operaciones: – Selección: a|b • L (a|b) = L(a) U L(b) = {a}U{b} = {a,b} – Concatenación: Sin símbolo entre ellos • L(a)L(b) = {a}{b} = {ab} • L((a|b)c) = L(a|b)L(c)={a,b}{c} = {ab, bc} – Repetición: * (cerradura de Kleene) • L(a*) = a, aa, aaaa…. Lenguaje regular conjunto de cadenas que pueden generarse solo a partir de la concatenación, selección y repetición de una expresión regular
  7. 7. EXPRESIONES REGULARESEJERCICIOS (a|b|c|d|e) = {a,b,c,d,e} (a|b*) = a, b, bb, bbb ¿Esta expresión (ab| c )* puede generar una cadena con 2 “bes” juntas ? ¿Esta expresión (a|b*)*d puede generar la cadena Ɛ, a, b?
  8. 8. EXPRESIONES REGULARES• Precedencia1. Repetición2. Concatenación3. Selección a|bc* -> (a|b)c* (a|bc)* (a|(b(c*))) Los paréntesis permiten cambiar la precedencia de los operadores.
  9. 9. EXPRESIONES REGULARES1. Ejercicios Considerando la precedencia de los operadores, determine al menos 10 cadenas válidas para la siguiente expresión: ab|c*d a) ¿Genera cadenas tipo abababab? b) ¿Genera cadenas que no terminen en d? c) ¿Genera cadenas tipo abdabdabd?, si la respuesta es no, ¿qué cambios debería hacerse a la expresión para que genere estas cadenas?
  10. 10. EXPRESIONES REGULARESNOMBRES PARA EXPRESIONES REGULARESIdentificador que denota un conjunto de alternativas en unaexpresiónExpresión para números (0|1|2|3|4|5|6|7|8|9)*Expresión para palabras (a|b|c|d|e|…………|z)*digito* = {Ɛ, 0,1,3,11,12,34, ...} digito= “Definición regular”digito digito* = ,0, 1, 3, 23,45, 2345,…..-digito digito* = digito+digito* no es expresión que genera: digito, digitoo, digitoooo
  11. 11. EXPRESIONES REGULARES Si ∑= {a,b,c} obtenga una expresión regular para:EJERCICIOS:Ejemplo 2.1 Ejemplo 2.2Conjunto de todas las cadenas que Conjunto de todas las cadenas quecontengan exactamente 1 b contienen como máximo una bNo pueden existir cadenas sin 1 b Una cadena puede o no tener “b” pero máximo 1bb(a|c) = ba,bc ¿y “bac” o “baa”? (a|c)*b(a|c)*b(a|c)* = ba, bc, baa, bcc, bac, baac ¿y aba, abc, cba? “Puede o no” ( (a|c)*b(a|c)*)| (a|c)* (a|c)*b(a|c)*
  12. 12. EXPRESIONES REGULARESEJERCICIOS: Qué conjunto de cadenas reconoce esta expresión:Ejemplo 2.5 EjemploRevisar b*(ab*ab*)*, Si ∑= ,a,b,c}
  13. 13. EXPRESIONES REGULARESEJERCICIOS: Qué conjunto de cadenas reconoce esta expresión:Ejemplo 2.5 EjemploRevisar b*(ab*ab*)*, Si ∑= ,a,b,c}Long. 0 Long. 1 Long 2 Long. 3 Long. 4 Long.5 Lon6.Ɛ b aa baa baab babab ababaa aba abab abbab aaaaaa Aab baba ababb … Cadenas con 2 “a’s” Cadenas con un número par de “a´s”
  14. 14. EXPRESIONES REGULARESEXTENCIONES PARA LAS EXPRESIONES REGULARES1. Una o más repeticiones: “+” a+ = {a, aa, aaa} 1 o más a*= {Ɛ , a, aa, aaa} 0 o más2. Cualquier caracter del alfabeto: “.” ∑= ,a,b,c,d,e,f,g} .c. cadenas con cualquier carácter que tienen una c entre ellos3. Intervalo “ *+” *A - Z]4. Cualquier carácter que no esté en un conjuntodado ~(a) : que no sea a
  15. 15. EXPRESIONES REGULARESEJERCICIOS: Para un lenguaje con alfabeto: ∑= ,a,b}1. Construir una expresión regular para un conjunto de cadenas que tenga un número impar de a’s2. Construir una expresión regular para un conjunto de cadenas que tenga un múltiplo de 3 de a´s
  16. 16. EXPRESIONES REGULARES
  17. 17. QUÉ ES UN AUTÓMATA• Autómatas finitos: permiten reconocer las cadenas dadas por las expresiones.• Máquina conceptual, que está en capacidad de procesar básicamente cadenas• Aplicaciones: Reconocedores de lenguaje (análisis léxico) y comparación de cadenas (buscar de word)• Para procesar las cadenas es necesario partir de un alfabeto. La concatenación de símbolos de un alfabeto, nos da una palabra. Un lenguaje es un conjunto de palabras formadas sobre un alfabeto
  18. 18. Autómatas finitos• Un conjunto de estados y transiciones entre esos estados.• Su tarea es reconocer una construcción de una palabra o una cadena.• Finito quiere decir que tiene un tamaño limitado.• Es una tupla compuesta por 5 elementos: – Q, conjunto de estados – Conjunto de símbolos de entrada (símbolos que va a reconocer.) – Transición – Estado inicial – {} de estados finales (estado donde el autómata puede terminar su reconocimiento)
  19. 19. • http://campusvirtual.unex.es/ebooks/files/file /TeoriaAutomatas.pdf

×