Você está na página 1de 11

UNIVERSIDAD JOS ANTONIO PEZ

TRADUCTORES E INTERPRETADORES

Unidad II

Analizador lxico
Parte II

1 de 11

Analizador lxico
Introduccin
Las expresiones regulares son una notacin importante para especificar patrones de
lexemas.
No abarcan todos los patrones posibles, pero sin embargo son efectivas para
especificar los tipos de patrones.
Se componen de un grupo de elementos: cadenas y lenguajes (alfabetos), operaciones
en los lenguajes, expresiones regulares y definiciones regulares.

2 de 11

Analizador lxico
Especificaciones
CADENAS Y LENGUAJES
Un alfabeto es un conjunto finito de smbolos. Algunos ejemplos tpicos de smbolos
son las letras, los dgitos y los signos de puntuacin.

Una cadena sobre un alfabeto es una secuencia finita de smbolos que se extraen de
ese alfabeto. Los trminos oracin y palabra son sinnimos de cadena.
La longitud de una cadena es la cantidad de smbolos que ocurren en esta. La cadena
de longitud cero se conoce como cadena vaca.

Un lenguaje se define como un conjunto contable de cadenas sobre algn alfabeto fijo.
La cadena vaca es la identidad, de tal forma que s = s.
La concatenacin es la unin de dos o ms cadenas.

3 de 11

Analizador lxico
Especificaciones
OPERACIONES EN LOS LENGUAJES
Las operaciones ms importantes en los lenguajes son la concatenacin, la unin y la
cerradura.

La Unin es la operacin familiar que se hace con conjuntos.


La Concatenacin es cuando se concatenan todas las cadenas que se forman al tomar
una cadena de ambos lenguajes en todas las combinaciones posibles.
La Cerradura es el conjunto de cadenas que se obtiene al concatenar un lenguaje de
cero a ms veces (Kleene) o de una a ms veces (positivo) sin el vaco.
4 de 11

Analizador lxico
Especificaciones
OPERACIONES EN LOS LENGUAJES
Sean L = {a,b,c,,z,A,B,C,,Z} y D = {0,1,,9}
o L D es el conjunto de letras y dgitos, lenguaje de 62 caracteres con longitud
uno.
o LD es el conjunto de 520 cadenas de longitud 2, una letra seguida de un nmero.
o L4 es el conjunto de todas las cadenas de cuatro letras.
o L* es el conjunto de todas las cadenas de letras, incluyendo .
o L(L D)* es el conjunto de todas las cadenas de letras y dgitos que comienzan
por una letra.
o D+ es el conjunto de todas las cadenas de uno o ms dgitos.

5 de 11

Analizador lxico
Expresiones regulares
EXPRESIONES REGULARES
Es una notacin que se utiliza para describir a todos los lenguajes que puedan
construirse a partir de los operadores de lenguajes descritos anteriormente.

Dentro de las expresiones regulares se conocen smbolos y expresiones especiales que


se utilizan para denotar estas operaciones.
o La barra vertical | representa la unin.
o La yuxtaposicin de las cadenas representan la concatenacin.
o El uso del asterisco representa la cerradura de Kleene, que define 0 o ms
incidencias.
o El uso de la suma para la cerradura positiva, define 1 o ms incidencias.
o Los parntesis permiten la agrupacin de estas operaciones.
Las expresiones regulares se construyen en forma recursiva a partir de las expresiones
regulares ms pequeas, usando las siguientes reglas:

6 de 11

Analizador lxico
Expresiones regulares
Regla base
El vaco es una expresin regular y L() es el lenguaje cuyo miembro nico es la
cadena vaca.
Si a es un smbolo, entonces a es una expresin regular, y L(a) = {a}, el lenguaje con
una cadena de longitud uno.

Induccin
Siendo r y s las expresiones regulares que denotan a L(r) y a L(s):
(r)|(s) es una expresin regular que denota el lenguaje L(r) L(s).
(r)(s) es una expresin regular que denota el lenguaje L(r)L(s).
(r)* es una expresin regular que denota al lenguaje (L(r))*.
(r) es una expresin regular que denota a L(r), y dice que podemos agregar pares
adicionales de parntesis alrededor de las expresiones sin cambiar el lenguaje que
denotan.

7 de 11

Analizador lxico
Expresiones regulares
Se pueden encontrar muchos pares de parntesis innecesarios, que pueden ser
eliminados mediante unas convenciones.

1. El operador unario tiene la precedencia ms alta y es asociativa a la izquierda.


2. La concatenacin tiene la segunda precedencia ms alta y es asociativa a la
izquierda.
3. La unin | tiene la precedencia ms baja y es asociativa a la izquierda.

8 de 11

Analizador lxico
Expresiones regulares
Se conocen una variedad de leyes algebraicas que afirman que las expresiones de dos
formas distintas son equivalentes.

9 de 11

Analizador lxico
Definiciones regulares
Se conoce como una conveniencia que permite colocar nombres a ciertas expresiones
regulares, y como consecuencia, permite su uso en expresiones subsiguientes, como si
estos nombres fueran smbolos por si mismos.
Si tenemos un alfabeto de smbolos bsicos, una definicin regular es una secuencia de
definiciones de la siguiente forma:
d1 r1
d2 r2

dn rn
Cada di es un nuevo smbolo que no esta en el lenguaje y no es el mismo que
cualquier otro d.
Cada ri es una expresin regular sobre el alfabeto {d1,d2,,di-1}
Estas restricciones evitan definiciones recursivas y construyen expresiones regulares
para cada ri.
10 de 11

Analizador lxico
Extensiones
Introducidas en la dcada de 1950, permiten mejorar la habilidad de especificar los
patrones de cadenas.

Una o ms instancias: El operador unario postfijo + y el operador unario postfijo *, que


denotan los lenguajes (L(r))+ y (L(r))*, respectivamente.
Cero o una instancia: El operador unario postfijo ? que significa cero o una
ocurrencia, lo que define un conjunto que expresa o un elemento del lenguaje o la
cadena vaca.
Clases de caracteres: Establecen representaciones para la unin de ms de un smbolo
del lenguaje o para una secuencia de smbolos.
o a|b|c es [abc]
o a,b,,z es [a-z].

11 de 11

Você também pode gostar