Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analisis Lexico PDF
Analisis Lexico PDF
De Coatzacoalcos
2016
Preparacin
Analizador Analizador Analizador Para la Generacin
Optimizacin
lexicogrfico Sintctico semntico Generacin del cdigo
de cdigo
Tokens
Manejo de tablas
Tabla de smbolo.
Tabla de literales.
Manejo
Tabla de ciclos de errores E/S
iterativos
Tabla de representa-
cin intermedia
Tokens
Los tokens ( componentes lxicas ) son las unidades lxicas
bsicas del mismo modo en que las palabras y los signos de puntuacin
son las unidades bsicas de una oracin en ingles. Los tokens varan de
lenguaje en lenguaje, e incluso de compilador en compilador para el
mismo lenguaje. Algunos ejemplos de tokens son:
La palabra clave.
La constantes.
El identificador.
El operador.
Puntuacin.
Problema del anlisis lexicogrfico
Podemos describir el problema del anlisis lexicogrfico como:
Dada una cadena de caracteres, divdase en una cadena de tokens:
Tokens=( tipo, valor)
Al tipo de un tokens a menudo se llama clase; los carcter reales
se conocen como lexema. Existen tres formalismo o modelos comunes
para la descripcin de los tipos de tokens:
Expresiones regulares:- La expresiones regulares describen los tokens
como el conjunto de cadenas permitidas en un lenguaje.
Diagramas de transicin :- Los diagramas de transicin describen los
tokens como cadenas permitidas que toman el diagrama desde un estado
inicial hasta un estado final.
Gramticas lineales:- Las gramticas lineales describen los tokens
como las cadenas generadas por una gramtica en una forma especial
(Llamadas tambin gramticas regulares ).
5.1. Funciones del Analizador
Lxico
Funciones principales de los analizadores lexicogrfico.
Existen tres funciones principales para un analizador lexicogrfico
a medida que va hallando tokens:
Utilidades de caracteres y manejo de lnea:- Se establece un programa
mediante un formato uniforme y compacto, el analizador lexicogrfico
puede eliminar informacin innecesaria como los comentarios. Tambin
procesa directivas de control del compilador ( como la peticin para crear
un archivo del listado de un programa ), introduce informacin preliminar (
como los nombres definidos por el usuario) en tablas y formatos y lista el
programa.
Prueba de predicado: - Tiene como finalidad verificar la membresa de un
conjunto de caracteres. Para un predicado su objetivo es regresar un valor
de verdadero siempre que se cumplan la condicin establecida por el. Las
implementaciones de estas utilidades dependen del lenguaje en que se
haya escrito al analizador lexicogrfico. Por ejemplo:
Esletra ( x ) : A <= x y x <= Z
El predicado Esletra aqu prueba slo letras maysculas ( y presume
que todas las maysculas estn codificadas en forma consecutivas ).
Acciones : - En general, hay una accin para cada tipo de token. En
algunos casos, podemos necesitar una accin para cada carcter
rastreado. Por ejemplo:
Cuando se rastrean los dgitos en un nmero, podramos tener que
convertir la secuencia de caracteres a un nmero.
5.2. Componentes lxico, patrones
y lexemas
En la fase de anlisis, los trminos componentes lxicos (token), patrn y
lexema se emplean con significados especficos. Un analizador lxico,
inicialmente lee los lexemas y le asigna un significado propio.
asociado son:
Letra
dgito
Letra
1 2 3
No es
No letra o
es dgito
letra
4
Autmatas finitos.
Los diagramas de transicin son una instrumentacin de
un modelo formal denominado autmatas finitos, conocidos
tambin como maquinas de estado finito o ( con menos frecuencia
en la actualidad) mquinas secuenciales.
Los autmatas finitos vienen diferentes tipos:
No determinsticos (NFA, por su siglas en ingles).
Determinsticos (DFA, por la misma razn ).
Determinsticos mnimos.
Letra
dgito, $
$
0 1 2
$
Ejemplo : Automta finito determinstico. Letra
dgito
3
Letra Letra
dgito $ dgito
$
0 1 2
$
Ejemplo: Este automta finito permite definir datos numricos como son:
enteros, reales y cientficos.( parte de un analizador lxico).
E|e
5.3.-Creacion de Tablas de
tokens
Tablas de Smbolos.
Es una estructura de datos que contiene un registro por
cada identificador, con los campos para los atributos del
identificador. La estructura de datos permite encontrar
rpidamente el registro de cada identificador y almacenar o
consultar rpidamente datos de ese registro.
Se examina la tabla de smbolos cada vez que se
encuentra un nombre en el texto fuente. Si se descubre un
nombre nuevo o nueva informacin sobre un nombre ya
existente, se producen cambios en la tabla.
Muchos compiladores establecen una tabla en el
momento del anlisis lexicogrfico y la llena con la informacin
del ltimo smbolo durante el anlisis semntico, cuando se
conoce ms informacin acerca del smbolo.
Operaciones de la tabla de smbolos.
Las principales operaciones de las tablas de smbolos son :
Atributos especiales.
Los lenguaje de propsito especficos a menudo tienen
nombres especiales. Los lenguajes orientados a objetos, por
ejemplo, pueden tener nombres de mtodos, nombres de clase y
objeto, as como los tipos usuales. El mbito es de particular
importancia en los lenguajes orientados a objetos, porque los
nombre a menudo heredan operaciones desde la superclases
que las contienen.
Otros atributos.
Otros atributos para nombres incluyen los caracteres
reales en el identificador del nombre, el nmero de lnea en el
programa fuente donde este nombre se declara y los nmeros
de lnea donde ocurren las referencias.
1 PROGRAMA Principal
2 Global a,b
3 PROCEDIMIENTO P (PARAMETRO x )
4 LOCAL a
Ejemplo de un programa
que ser empleado para 5 COMIENZA { P }
construir su tabla de 6 ..a
smbolo.
7 ..b
8 ..x..
9 TERMINA { P }
10 COMIENZA { PRINCIPAL }
11 Llama P (a)
12 TERMINA { PRINCIPAL }
Tabla de smbolo obtenida del programa anterior.
Otros atributos
Caracteres Clase mbito Declaracin Referencia otros
Creacin de errores.
Deteccin de errores.
Informe de errores.
Recuperacin de errores.
Creacin de errores.
EL diseo de un lenguaje afecta la clase de errores que pueden
ocurrir, y es la manera ms fcil de cometer los errores.
Parmetros
Fuente
Un manejador de errores se puede escribir en una forma modular
cuando contiene una pequeo nmero de esquemas tal como
En Fuente Tipo Valor est mal escrita.
Cuando se llama al manejador, los valores reales se sustituyen por
las plantillas Fuente, Tipo y Valor.
Otra cuestin del informe de errores es si se contina
informando apariciones repetidas del mismo error. Debera
emitirse un mensaje de error todo el tiempo que se utiliza una
variable no declarada ? .
Deteccin y recuperacin de errores.
La deteccin y la recuperacin de errores son temas
combinados en el que la deteccin de un error, a menudo,
proporciona una firme pista acerca de cmo resolverlo. La
deteccin de errores encuentra el error; la recuperacin de errores
intenta reparar el error lo suficiente para continuar con el anlisis (
y quiz hallar ms errores). La recuperacin es algo heurstico, en el
sentido de que es muy difcil asegurar que la correccin no
informe de errores espurios ( los que no estaban all ), o ignore
otros errores que se encontraban ah. Por ejemplo: