Analizador lex

Solo disponible en BuenasTareas
  • Páginas : 6 (1451 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de noviembre de 2011
Leer documento completo
Vista previa del texto
CAPÍTULO III
ANÁLISIS LEXICOGRÁFICO

Análisis Léxico
El análisis léxico constituye la primera fase, aquí se lee el programa fuente de izquierda a derecha y se agrupa en componentes léxicos (tokens), que son secuencias de caracteres que tienen un significado. Además, todos los espacios en blanco, líneas en blanco, comentarios y demás información innecesaria se elimina del programa fuente.También se comprueba que los símbolos del lenguaje (palabras clave, operadores,...) se han escrito correctamente. Como la tarea que realiza el analizador léxico es un caso especial de coincidencia de patrones, se necesitan los métodos de especificación y reconocimiento de patrones, se usan principalmente los autómatas finitos que acepten expresiones regulares. Sin embargo, un analizador léxicotambién es la parte del traductor que maneja la entrada del código fuente, y puesto que esta entrada a menudo involucra un importante gasto de tiempo, el analizador léxico debe funcionar de manera tan eficiente como sea posible.

Análisis Léxico: Esta fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje. Es decir realiza un análisis símbolo por símbolo indicando el token porcada uno de los elementos reconocidos o el error en caso de no reconocer. Este análisis no logra detectar muchos errores por su característica.

Ejemplo:
total=valor*5 Luego del análisis léxico: id = id * num

Su principal función consiste en leer los caracteres de entrada y elaborar como salida una secuencia de componentes léxicos que utiliza el analizador sintáctico para hacer el análisis. Funciones del Analizador Léxico
 Eliminar los comentarios del programa.

 Eliminar espacios en blanco, tabuladores, etc, y en general, todo aquello que carezca de significado según la sintaxis del lenguaje.
 Reconocer los identificadores de usuario, números, palabras reservadas del lenguaje, ...,y tratarlos correctamente con respecto a la tabla de símbolos (solo en los casos que debe detratar con la tabla de símbolos).

 Llevar la cuenta del número de línea por la que va leyendo, por si se produce algún error, dar información sobre donde se ha
producido.  Avisar de errores léxicos. Por ejemplo, si @ no pertenece al lenguaje, avisar de un error.  Puede hacer funciones de preprocesador.

TOKENS
ES LA UNIDAD LÉXICA BÁSICA DE UN LENGUAJE DE PROGRAMACION.

TOKEN =(TIPO,VALOR)

TIPO: ES LA CLASE DE TOKEN VALOR ES LA INSTANCIA DE LA CLASE

EJEMPLO DE TOKEN
Token=(operador_aritmético,+) Token=(operador_de_relación ,=) Token=(palabra_reservada,mov) Token=(identificador,variable1)

patrón
Es la regla de formación a la que responde el token, normalmente esta regla de formación es una expresión regular

lexema
Es cada secuencia de caracteres concreta queencaja con un patrón, es decir, es como una instancia de un patrón

Ej: 8, 23, 50 ( son lexemas que encajan con el patrón ( 0 | 1 | 2 | ... | 9) + )

Determinación de los tipos de tokens
TIPO DE TOKEN
PALABRAS RESERVADAS SIGNOS DE AGRUPACION

CODIGO
100 300

OPERADORES ARITMETICOS
OPERADORES DE RELACIÓN

400
500

IDENTIFICADORES
NUMEROS OPERADORES DE ASIGNACION

600
700 800 Palabras reservadas
TIPO: PALABRAS RESERVADAS CODIGO:100

Codificación de la Instancia y Valores

C++
CODIGO
101

NUMERO
1

LEXEMA
cin

2
3

cout
double

102
103

4
5

if
for

104
105

Palabras reservadas
TIPO: PALABRAS RESERVADAS CODIGO:100

Codificación de la Instancia y Valores

Asm
CODIGO
101

NUMERO
1

LEXEMA
assume

2
3

lea
mov

102103

4
5

segment
sub

104
105

Palabras reservadas
TIPO: PALABRAS RESERVADAS CODIGO:100

Codificación de la Instancia y Valores

Visual Basic
CODIGO
101

NUMERO
1

LEXEMA
call

2
3

if
msgbox

102
103

4
5

then
single

104
105

Palabras reservadas
TIPO: PALABRAS RESERVADAS CODIGO:100

Codificación de la Instancia y Valores

Java
CODIGO
101...
tracking img