Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
Msc. Ing. Esmeide Leal
Universidad Autnoma del Caribe
Anlisis Lxico
Analisis lexico
Patrn
Es una regla que describe el conjunto de cadenas
de la entrada que corresponden a un componente
lxico.
Ejemplo: Una variable comienza en letras seguidas
de letras y/ dgitos.
Lexema
Es una secuencia de caracteres del programa
fuente que concuerdan con un patrn. Ejemplo:
Una variable comienza en letras seguidas de letras
y/ dgitos.
CONT1
Es un lexema que concuerda con el
patrn anterior.
CONT$
No es un lexema, por que no
concuerda con ese patrn.
Todo componente lxico puede ser un
Lexema?
No. todo componente lxico no es un lexema, porque
por ejemplo: if es una palabra reservada (recurdese
que las palabras reservadas son componentes
lxicos) y no es un lexema.
Alfabeto
Es un conjunto no vaco y finito de smbolos. Se
denota con el smbolo
{0,1}
1
{0,1,2,3,.....,9}
{a, b, c, d , e, f ,...., z}
2
Cadena
Es una sucesin secuencia de caracteres
tomados a partir de un alfabeto.
Ejemplos:
010001 es una cadena que pudo ser tomado del
alfabeto ( ) del alfabeto ( )
01834 fue tomado del alfabeto ( ), puesto que sus
elementos hacen parte solo de este alfabeto.
Lenguaje
Es un conjunto finito infinito de cadenas
construidos a partir de los smbolos del alfabeto.
Se denota con la letra L. Ejemplo:
L1= {010, 0110, 11100}
L2= {ab, abbc, cajk}
Concatenacin
Concatenacin
Ejemplo
L1={a,b}
L2={c,d}
L1L2= {a,b} {c,d} ={ac, ad, bc, bd}
Potencia de un Lenguaje
Ejemplo
L={a,b}
L0={}
L1=L . L0 =L={a,b}
L2=L .L={a,b} {a,b}= {aa, ab, ba, bb}
L3=L . L2={a,b} {aa, ab, ba, bb}
= {aaa, aab, aba, abb, baa, bab, bba, bbb}
L* =
Ejemplo
L={a,b}
L*={} {a,b} {aa, ab, ba, bb}
L*={, a, b, aa, ab, ba, bb,}
Nota: esta cerradura genera TODAS las posibles combinaciones entres
los elementos del lenguaje incluyendo el vaco ().
L =
+
L U
LULU
Ejemplo
L={a,b}
L+={ a, b, aa, ab, ba, bb,}
Nota: esta cerradura genera TODAS las posibles
combinaciones entres los elementos del lenguaje pero NO
incluye el vaco ().
Cerradura 1 o 0
L =
?
L
=L
Ejemplo
L={a,b}
L0={}
L1=L . L0 = L = {a, b}
L0 = { , a, b}
1. L+= LL*
2. L*= L+ L0= L0 L+
3.(L*)n= L*
4.(L*)*= L*
5.(L*)+= L*
6. (L+)*= L*
7. (L+)+= L+
8. (L1 L2)*= (L1*L2*)*
Lenguajes
regulares
Especificar
Expresiones
regulares
Lenguajes no
regulares
Especificar
GIC
Anlisis Lxico
Lenguajes Regulares
Se llaman as porque sus palabras contienen
regularidades
o
repeticiones
de
los
mismos
componentes.
Ejemplo: L1 = {ab, abab, ababab, abababab, . . .}
Anlisis Lxico
Lenguajes Regulares
Definicin: Un lenguaje L es regular si y solo si se
cumple al menos una de las condiciones siguientes:
i. L es finito
ii. L es la unin o la concatenacin de otros lenguajes
regulares R1 y R2, L = R1 R2 o L = R1R2 respectivamente
iii. L es la cerradura de Kleene de algn lenguaje regular, L=
R*
Anlisis Lxico
Lenguajes Regulares
Definicin: Es un lenguaje que se forma a partir de los
lenguajes bsicos como {} y {a} donde a y debe
cumplir tres operaciones bsicas: Unin, concatenacin y
cerradura de Kleene.
i. {} es un lenguaje regular
ii. Si a pertenece al alfabeto ( ) entonces {a} es un lenguaje
regular.
iii. Si L1 y L2 son lenguajes entonces L1 L2, L1 U L2, L1*, L2* son
lenguajes regulares.
Anlisis Lxico
Expresiones Regulares
Simplifica la especificacin de un lenguaje
regular y sirve para especificar un patrn.
Los operadores que se utilizan son los siguientes:
.
|
*
+
?
(,)
Concatenacin
Unin
Cerradura de Klenne
Cerradura Positiva
Cerradura 0 o 1 caso
Agrupar
1
2
3
4
(,)
*, +, ?
.
|
Anlisis Lxico
Expresiones Regulares
Definicin:
1. {} es una expresin regular.
2. Si a , entonces a es una expresin regular.
3. Si r y s son expresiones regulares entonces su lenguaje
regular es respectivamente L(r) y L(s)
a. r es una expresin regular y se representa L (r) = {r}
b. (r | s) es una expresin regular y se representa,
L(r) U L(s) = {r} U {s} = {r, s}.
c. r.s es una expresin regular y se representa L(r) L(s) = {r}
{s} = {rs}.
d. r* es una expresin regular y se representa L*(r) = {r}* = {, r, rr,
rrr, rrrr}.
Anlisis Lxico