Está en la página 1de 7

INSTITUTO TECNOLOGICO SUPERIOR DE IRAPUATO

INGENIERIA EN SISTEMAS COMPUTACIONALES


LENGUAJES AUTOMATAS
MTRO. JUAN CARLOS GONZALEZ CORDOBA
UNIDAD 4
TEMA: ANALISIS LEXICO
ACTIVIDAD 1: INVESTIGACION
FUNCIONES DEL ANALIZADOR LEXICO

RAMIREZ ALDACO CARLOS


IS19111260
FECHA DE ENTREGA: 16/03/2022
INTRODUCCION

Un analizador lexicográfico o analizador léxico es la primera etapa de un compilador,


que consiste en un programa que recibe como entrada el código fuente (secuencia
de caracteres) de otro programa y produce tokens (componentes léxicos) de salida
compuestos por símbolos. Estos tokens se utilizan más adelante en el proceso de
traducción como entrada para el analizador.

La especificación de un lenguaje de programación suele incluir un conjunto de


reglas que definen un diccionario. Estas reglas suelen consistir en expresiones
regulares que indican el conjunto de posibles secuencias de caracteres que definen
un token o lexema. En algunos lenguajes de programación es necesario establecer
patrones para caracteres especiales (como el espacio en blanco) que la gramática
pueda reconocer sin que constituya un token en sí.

Los componentes léxicos (tokens) son los elementos de las categorías l léxicas. Por
ejemplo, en el leguaje C, “i” es un componente léxico de la categoría identificador,
232 es un componente léxico de la categoría entero, etc.

El analizador léxico ira leyendo de la entrada y dividiéndola en componentes léxicos.


En general no basta con saber la categoría a la que pertenece un componente, en
muchos casos es necesaria cierta información adicional.

Por ejemplo, será necesario conocer el valor de un entero o el nombre del


identificador. Utilizamos los atributos de los componentes para guardar esta
información. Un último concepto que nos será útil es el de lexema: la secuencia
concreta de caracteres que corresponde a un componente léxico.

Dichos analizadores recibirán como entrada un fichero de texto que contiene el


programa fuente y en el caso de que no haya errores léxicos ni sintácticos
producirán como resultado un objeto que represente el programa fuente en forma
de árbol. Si hay errores léxicos o sintácticos se levantará una excepción.
En la mayoría de los lenguajes de programación, se consideran componentes
léxicos a las siguientes construcciones: palabras clave, operadores, identificadores,
constantes, cadenas literales y signos de puntuación como por ejemplo paréntesis,
coma, punto y coma. Las técnicas utilizadas para construir analizadores léxicos
también se pueden aplicar a otras áreas, como por ejemplo a lenguajes de consulta
y sistemas de recuperación de información.
Un analizador léxico lee caracteres del archivo de entrada, donde se encuentra la
cadena a analizar, reconoce lexemas y retorna tokens. Una forma sencilla de crear
un analizador léxico consiste en la construcción de un diagrama que represente la
estructura de los componentes léxicos del lenguaje fuente.
FUNCIONES

El analizador léxico reconoce las palabras en función de una gramática regular de


manera que el alfabeto G de dicha gramática son los distintos caracteres del juego
de caracteres del ordenador sobre el que se trabaja (que forman el conjunto de
símbolos terminales), mientras que sus no terminales son las categorías léxicas en
que se integran las distintas secuencias de caracteres. Cada no terminal o categoría
léxica de la gramática regular del análisis léxico es considerado como un terminal
de la gramática de contexto libre con la que trabaja el analizador sintáctico, de
manera que la salida de alto nivel (no terminales) de la fase léxica supone la entrada
de bajo nivel (terminales) de la fase sintáctica. En el caso de Lex, por ejemplo, la
gramática regular se expresa mediante expresiones regulares.

Funciones del analizador léxico

1. Eliminación de espacios en blanco


2. Reconocimiento de identificadores y palabras claves
3. Analizador léxico ”scanner” lee la secuencia de los caracteres del programa
fuente, y los agrupa para formar unidades con significado propio

El analizador léxico es la primera fase de un compilador y 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.

La fase de análisis léxico se halla bajo el control del análisis sintáctico.

Normalmente se implementa como una función de esta interacción suele aplicarse


convirtiendo al analizador léxico en una subrutina o corrutina del analizador
sintáctico.

Recibida la orden:

“Dame el siguiente componente “léxico” del analizador sintáctico, el léxico lee los
caracteres de entrada hasta que pueda identificar el siguiente componente léxico,
el cual devuelve al sintáctico según el formato convenido.
Además de esta función principal, el analizador léxico también realiza otras de gran
importancia:

 Eliminar los comentarios del programa.


 Eliminar espacios en blanco, tabuladores, retorno de carro, 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, etc., y tratarlos correctamente con respecto a la tabla de símbolos
(solo en los casos en que este analizador deba tratar con dicha estructura).
 Llevar la cuenta del número de línea por la que va leyendo, por si se produce
algún error, dar información acerca de dónde se ha producido.

• Avisar de errores léxicos. Por ejemplo, si el carácter ‘@’ no pertenece al lenguaje,


se debe emitir un error.

• También puede hacer funciones de preprocesador.

Necesidad del analizador léxico

Un buen profesional debe ser capaz de cuestionar y plantearse todas las decisiones
de diseño que se tomen, y un asunto importante es por qué se separa el análisis
léxico del sintáctico si, al fin y al cabo, el control lo va a llevar el segundo. En otras
palabras, por qué no se delega todo el procesamiento del programa fuente sólo en
el análisis sintáctico, cosa perfectamente posible ya que el sintáctico trabaja con
gramáticas de contexto libre y éstas engloban a la regulares.

El analizador sintáctico emite la orden al analizador léxico para que agrupe los
caracteres y forme unidades con significado propio llamados componentes léxicos
(tokens).
Los componentes léxicos representan:

 Palabras reservadas: if, while, do, ...


 Identificadores: variables, funciones, tipos definidos por el usuario,
etiquetas.
 Operadores: =, >, <, >=, <=, +, *
 Símbolos especiales: ;, ( ), { }
 Constantes numéricas literales que representan valores enteros y flotantes.
 Constantes de carácter: literales que representan cadenas de caracteres

Ciertas funciones secundarias en la interfaz del usuario, como eliminar del programa
fuente comentarios y espacios en blanco en forma de caracteres de espacio en
blanco, caracteres TAB y de línea nueva. Otra función es relacionar los mensajes
de error del compilador con el programa fuente. Por ejemplo, el analizador léxico
puede tener localizado el número de caracteres de nueva línea detectados, de modo
que se pueda asociar un número de línea con un mensaje de error.

En algunos compiladores, el analizador léxico se encarga de hacer una copia del


programa fuente en el que están marcados los mensajes de error. Si el lenguaje
fuente es la base de algunas funciones de preprocesamiento de macros, entonces
esas funciones del preprocesador también se pueden aplicar al hacer el análisis
léxico.
BIBLIOGRAFIA

Vilar Torres, J. M. (2009). Analizador léxico (versión del curso 2008-2009).

Bavera, F., Nordio, D., Arroyo, M., & Aguirre, J. (2002). JTLex un generador de
analizadores léxicos traductores. In VIII Congreso Argentino de Ciencias de la
Computación.

Muñoz Ruiz, J. C. (2003). Analizador léxico-sintáctico para el lenguaje de animacuento.

García Fernández, L. A., & Martínez Vidal, M. G. (2005). Primera práctica: Introducción al
Analizador Léxico FLEX.

Álvarez, U. A. A., Flores, J. A. R., Cruz, D. G., & Nepamuceno, D. M. C. (2016). Traductor
de programación.

Análisis Léxico - Compiladores. (s. f.). Google sites. Recuperado 13 de marzo de 2022, de
https://sites.google.com/site/compiladoresesilval/home/compiladores/analisis-lexico

También podría gustarte