Beruflich Dokumente
Kultur Dokumente
LEX IC O G R A FIC
O
IN TR O D U C C IO N
La
2.1. EL P R O B LEM A D EL
A N A LISIS LEX IC O G R FIC O
Dada una cadena de
caracteres divdase en
una cadena de tokens:
token= (tipo, valor)
Al tipo de un token a
menudo se le llama
clase; los caracteres
reales se conocen
como lexemas.
Existen tres
formalismos o
modelos comunes.
Expresiones regulares.
Describen los tokens
como el conjunto de
cadenas permitidas en un
lenguaje.
Diagramas de
transicin. Describen los
tokens como las cadenas
permitidas que toman el
diagrama desde un
estado inicial hasta un
estado final.
Gramticas lineales.
Describen los tokens
como las cadenas
generadas por una
gramtica en forma
2. EJEM P LO S D E TO K EN S
2.3. R EC O N O C IM IEN TO D E
TO K EN S
El reconocimiento de tokens es difcil en algunos
EJEM P LO 1
FORTRAN:
IF (1.E+6. LT. N)
IF (1 EQ. N)
(Para los lectores que no conocen FORTRAN, el primer
fragmento se lee si 1X es menor que N.) El problema
es el ejemplo 1 es que, habiendo rastreado los primeros 6
caracteres, no sabemos si.
IF (1.E. . .
Es el principio de
IF (1.E+6 .LT. N) . . .
O
IF (1 .EQ. N) . . .
2.4. FU N C IO N ES PR IN C IPLA ES D E
LO S A N A LIZA D O R ES
LEX ICO G R A FIC O S
Existen cuatro funciones principales
al
apuntador actual.
Retraer: Mueve el apuntador de bsqueda hacia delante un carcter de
regreso.
Aceptar: Mueve
membresa de un conjunto de
caracteres. Las utileras tpicas son:
EsLetra EsDigito EsDelimitador
EsC
Donde EsLetra(x) es un predicado
que regresa al valor verdadero si X
es una letra, EsDigito(x) es un
predicado que regresa al valor
verdadero si x es un digito.
2.4.3 A cciones
Hay una accin en cada tipo de token.
InstalaNombre: Pone el token nombre
2.4.4 Errores
Cualquier cosa que el analizador
2.5 D IA G R A M A S D E
TR A N SIC I N
Los diagramas de transicin
C:= DameCar
TERMINAMIENTRAS
{estado 3}: Retraer- hemos rastreado un carcter de
mas
T:= (Id, Instala)
Aceptar
Regresa (t)
{estado 4}: OTRO Falla- comienza la bsqueda por un
token diferente
TERMINASI
FUNDAMENTOS DE TEORIA DE
LENGUAJES
Los autmatas finitos descritos en la seccin
2.6 son un formalismo para describir conjuntos
de cadenas de caracteres. Son utilizados en
compiladores para reconocer los tokens en un
lenguaje de programacin. Existen otros tipos
formalismos para describir estos mismos
conjuntos. Uno de estos son las expresiones
regulares.
DEFINICIONES BASICAS
DEFINICION 1: ALFABETO: un conjunto
finito de smbolos utilizados en un lenguaje.
Por ejemplo:
A= {$, AZ, 09}
Denota un alfabeto llamado A qu consiste
de los smbolos $ y el conjunto de letras
(maysculas) y dgitos. (Hemos completado
la abreviacin AZ Y 09, en lugar de
listar tolas las letras y dgitos)
DEFINICION2:
CADENA=SENTENCIA=PALABRA:
una
sentencia finita de smbolos de un alfabeto.
Por ejemplo:
X= $AB1$
Denota una cadena de caracteres llamada
x que comienza y finaliza con $ny
contiene los caracteres AB1 entre los
signos $
DEFINICION 4:
vaca.
| |=0
DEFINICION 9: L U M: {x|x L o x M}
Por ejemplo
Si L = {$} y M = {$AB1$}, entonces L U M = {$,
$AB1$}
La unin del lenguaje vaco con un lenguaje L es
L:
{}UL=LU{}=L
La unin de {} con L puede no ser igual a L, a
menos que L contenga a
{} U L = L U {} L (a menos que este en L)
EXPRESIONES REGULARES
Una expresin regular es una formula para denotar ciertos
lenguajes. Advirtase que decimos lenguaje, no cadena de
caracteres. Una expresin regular nica denota un conjunto de
cadenas, es decir, un lenguaje, no una simple cadena. No todos los
lenguajes pueden ser expresados utilizando una expresin regular.
La siguiente tabla define en forma recursiva cuales lenguajes
pueden describirse mediante expresiones regulares.
CONVERSION DE EXPRESIONES
REGULARES
EN
AUTOMATAS
FINITOS
NO
Las expresiones regulares y autmatas finitos son notaciones alternativas
DETERMINISTICOS
para el mismo tipo de
lenguaje: tienen el mismo poder expresivo. Las
imgenes siguientes muestran como puede ser representada una expresin
regular por medio de un autmata finito no determinstico.