Analizadores Lexico

Páginas: 5 (1150 palabras) Publicado: 3 de febrero de 2014
Un analizador léxico o analizador lexicográfico (en inglés scanner) es la primera fase de un compilador consistente en un programa que recibe como entrada el código fuente de otro programa (secuencia de caracteres) y produce una salida compuesta de tokens (componentes léxicos) o símbolos. Estos tokens sirven para una posterior etapa del proceso de traducción, siendo la entrada para elanalizador sintáctico (en inglés parser).
ANATOMIA DE UN COMPILADOR

Los analizadores léxicos tienen como objetivo Convertir un flujo de caracteres de entrada en un flujo de palabras o elementos (token). Los tokens son grupos de caracteres con significado.
Existen dos formas de implementar el análisis léxico
– Como una función antes del análisis sintáctico
– Como una función durante el análisissintáctico
Contiene tareas secundarias como:
– Ignorar espacios en blanco, tabuladores, caracteres de fin de línea
– Ignorar comentarios
– Algunas veces guarda información del error para el usuario




Algunas veces es dividido en 2 fases
– Scanner
– Análisis Léxico
Razones de implementación de dos fases
– Diseño simple
– Eficiencia del compilador
– Portabilidad
Ejemplos de Tokens:– operadores (= + - > ( { := == )
– keywords (if while for int double)
– literales numéricos (43 6.035 -3.6e10 0x13f3a)
– literales de carácter ('a' '~' '\'')
– strings literales ("6.983" "compiladores" "\"\"")
Ejemplos de no-tokens
– espacios en blanco (espacio(' ') tab('\t') eol('\n'))
– comentarios (/* este no es un token */)
ESTRUCTURA DECOMPILADOR

CARACTERISTICAS DE LOS TOKENS
• Los token corresponden a conjuntos de cadenas.
• Identificadores:cadenas de letras o dígitos que comienzan con una letra.
• Enteros: una cadena de dígitos.
• Palabras reservadas: else, if, begin, …
• Espacios en blanco: una secuencia de espacios, nuevas líneas, tabuladores.
• Open par: un paréntesis izquierdo.
IMPLEMENTACION DEL ANALIZADOR LEXICO• Una implementación debe hacer dos cosas:
– Reconocer las subcadenas que corresponden a tokens.
– Regresar el valor o lexema de un token
• El lexema es la subcadena.
COMO DESCRIBIR UN TOKEN
Un identificador es una secuencia de letras y dígitos; el primer caracter debe ser una letra. El guión bajo _ cuenta como una letra. Las letras en mayúsculas y minúsculas son distintas. Si el archivo deentrada ha sido procesado en tokens hasta un caracter dado, el siguiente token debe incluir el string más grande de caracteres que podría constituir un token. Los espacios en blanco, tabuladores, nuevas líneas, y comentarios son ignorados excepto que sirven para separar tokens. Se requiere algo de espacio en blanco para separar identificadores, keywords, y constantes que de otra forma estaríanadyacentes.
PROGRAMANDO UN ANALIZADOR LEXICO
● Podemos implementar un lexer ad hoc en cualquier lenguaje de programación
● ¡Pero también podemos generalizar!
– Usamos expresiones regulares para definir formalmente qué secuencia de strings constituyen los tokens
– Implementamos el lexer usando automata finitos deterministicos


Errores Léxicos
El analizador léxico típicamente detecta lossiguientes errores:
• El utilizar caracteres que no pertenecen al alfabeto del lenguaje
• Encontrar una cadena que no coincide con ninguno de los patrones de los tokens posibles
Posibles acciones que el analizador léxico puede llevar a cabo para recuperarse de los errores
• Ignorar los caracteres no válidos hasta formar un token según los patrones dados
• Borrar los caracteres extraños
• Insertarun caracter que pudiera faltar
• Reemplazar un caracter presuntamente incorrecto por uno correcto
• Conmutar las posiciones de dos caracteres adyacentes
Funcionamiento del analizador léxico
• Su principal función es procesar la cadena de caracteres y devolver pares (token, lexema). Generalmente debe funcionar como una subrutina del analizador sintáctico.






Operaciones que...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analizador Lexico
  • Analizador Lexico
  • Analizador Lexico
  • Analizadores lexicos
  • Analizador Lexico
  • analizador lexico
  • Analizador Lexico
  • Analizador lexico

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS