Anda di halaman 1dari 17

IMPLANTACIN DEL

ANALIZADOR LEXICO
1. UTILIZAR UN GENERADOR DE A.
LEXICOS ( LEX).
2. ESCRIBIR EL A. LEXICO EN UN
LENGUAJE CONVENCIONAL.
3. ESCRIBIR EL A. LEXICO EN LENGUAJE
ENSAMBLADOR.
ORDEN DE DIFICULTAD CRECIENTE.
LOS ENFOQUES MAS DIFICILES
A. LEXICOS + RAPIDOS.

PROBLEMA
EL ANALIZADOR LEXICO ES LA UNICA
FASE QUE LEE EL PROGRAMA
FUENTE CARCTER A CARACTER:
MUCHO TIEMPO.
LA
VELOCIDAD
SUPONE
PROBLEMA EN EL DISEO
COMPILADORES.

UN
DE

BUFFERS
DOS BUFFERS DE ENTRADA: PREANALISIS
EN LA ENTRADA PARA IDENTIFICAR LOS
COMPONENTES LEXICOS.
CONSUME MUCHO TIEMPO: TECNICAS
ESPECIALIZADAS EN EL MANEJO DE
BUFFERS PARA REDUCIR EL # DE
OPERACIONES
NECESARIAS
PARA
PROCESAR UN CARCTER DE ENTRADA.

PROCESO
BUFFER DIVIDIDO EN DOS MITADES
DE N CARACTERES CADA UNA. 1024 O
4096.
SE
LEEN
N
CARACTERES
DE
ENTRADA EN CADA MITAD DEL
BUFFER CON UNA ORDEN DE
LECTURA DEL SISTEMA.

E = M * C * * 2 eof

2 Apuntadores al buffer de entrada. La cadena


de caracteres entre los dos apuntadores es el
lexema en curso.
Al principio los dos apuntadores apuntan al del
prximo lexema que hay que encontrar.
Apuntador delantero, examina hacia delante
hasta encontrar una concordancia con el patrn.

E = M * C * * 2 eof

Despus de haber procesado el lexema, ambos


apuntadores se colocan en el carcter situado
inmediatamente despus del lexema.
Cuando el apuntador delantero est a punto de
sobrepasar por la marca intermedia del buffer, se
llena la mitad derecha con n nuevos caracteres
de entrada.
Sobrepasar el extremo derecho del buffer, se
llena la mitad izquierda con N nuevos caracteres
de entrada y el apuntador delantero se regresa al
principio del buffer.

Programa = Cadena de Caracteres


Apuntador Actual

Apuntador de Bsqueda

Damecar: Mueve el apuntador de


bsqueda hacia delante y regresa al
carcter siguiente.
Eliminacin de espacios en blanco:
MIENTRAS blanco HACER Damecar;

CENTINELAS
ES UN CARCTER ESPECIAL QUE NO
PUEDE SER PARTE DEL PROGRAMA
FUENTE
MARCA EL FINAL DEL BUFFERS.
EOF O FIN DE ARCHIVO.

ESPECIFICACIN DE LOS
COMPONENTES LXICOS
ALFABETO: CONJUNTO FINITO DE
SIMBOLOS. EJ: BINARIO,ASCII.
CADENA: SECUENCIA FINITA DE
SIMBOLOS.
LONGITUD DE CADENA: lSl
CADENA VACIA:

LENGUAJE: CONJUNTO DE CADENAS

OPERACIONES COMPONENTES
LEXICOS
UNION
CONCATENACIN

L= {A,B,Z, a,b,.z} Alfab.Letras


D={0,1,2,3,4.9} Alfab. Digitos

L U D = Conjunto de letras y dgitos.


LD= Conjunto de cadenas que consta de
una letra seguida de un digito.
L4 = Conjunto de todas las cadenas de 4
letras.
L* = Conjunto de todas las cadenas de
letras.
L(LUD): Conjunto de todas las cadenas
de letras y dgitos que comienzan con una
letra.

EXPRESIONES REGULARES
PERMITE DEFINIR LA ESTRUCTURA.
ES UNA FORMULA PARA DENOTAR
LENGUAJES. DENOTA UN CONJUNTO
DE CADENAS.
Letra (letra/digito)*
Exp. Regular.
Identificadores
Letra seguida de cero o mas letras o
dgitos.
* : Cero o mas casos.

EJEMPLOS
= (a,b)
a/b = { a, b}
(a/b)(a/b) = { aa, ab, ba, bb}
a* = {, a, aa,aaa,.}
(a/b)*= {,a,aa,,b,bb,..} cero o mas casos de
una a o una b. = (a*/b*)*.
a/a*b = { a, b, ab, aab.}
Cadena a y todas las cadenas que componen de
cero o ms a seguidas de una b.

DEFINICIONES REGULARES
DEFINIR EXPRESIONES REGULARES.
SECUENCIA DE DEFINICIONES.

d1 r1
d2 r2

dn rn

d1:Nombre r1: Exp. Reg

EJEMPLO
IDENTIFICADOR

LETRA A/B/Z/a/b../z
DIGITO 0/1/2/9
ID LETRA (LETRA/DIGITO)*

EJERCICIOS

X
X/Y
(XY)/Z
(X*/Y*)
X/(YZ)*

EXPRESIONES
REGULARES
DEFINICIONES REGULARES:
DECLARACIN DE UNA MATRIZ
CICLO FOR;
PROXIMA CLASE:
DIAGRAMAS DE TRANSICIONES.

Anda mungkin juga menyukai