0% encontró este documento útil (0 votos)
166 vistas13 páginas

Análisis Léxico: Funciones y Aplicaciones

El documento describe los conceptos fundamentales del análisis léxico, incluyendo las funciones de un analizador léxico, los componentes léxicos, patrones y lexemas, la creación de tablas de tokens, los errores léxicos, los generadores de analizadores léxicos como Lex y Flex, y un caso de estudio de aplicaciones. El objetivo principal del análisis léxico es leer el flujo de caracteres de entrada y transformarlo en una secuencia de componentes léxicos para el análisis sintáctico, al tiempo que

Cargado por

Gali
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
166 vistas13 páginas

Análisis Léxico: Funciones y Aplicaciones

El documento describe los conceptos fundamentales del análisis léxico, incluyendo las funciones de un analizador léxico, los componentes léxicos, patrones y lexemas, la creación de tablas de tokens, los errores léxicos, los generadores de analizadores léxicos como Lex y Flex, y un caso de estudio de aplicaciones. El objetivo principal del análisis léxico es leer el flujo de caracteres de entrada y transformarlo en una secuencia de componentes léxicos para el análisis sintáctico, al tiempo que

Cargado por

Gali
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

CONTENIDO

• Introducción
• 4 Análisis Léxico

• 4.1 Funciones del analizador léxico


• 4.2 Componentes léxicos, patrones y
lexemas.
• 4.3 Creación de Tablas de Tokens
• 4.4 Errores Léxicos
• 4.5 Generadores de analizadores léxicos
• 4.6 Aplicaciones (Caso De Estudio)

• Conclusiones.
• Bibliografía
INTRODUCCIÓN
• Expondré la definición de los analizadores léxicos , sus tipos y sus aplicaciones en
problemas reales. En primer lugar, vamos a definir lo que se entiende por analizador léxico.

• Una posible definición es un módulo destinado a leer caracteres del archivo de entrada,
donde se encuentra la cadena a analizar, reconocer subcadenas que correspondan a símbolos
del lenguaje y retornar los tokens correspondientes y sus atributos. Escribir analizadores
léxicos eficientes “a mano” puede resultar una tarea tediosa y complicada, para evitarla se
han creado herramientas de software – los generadores de analizadores léxicos – que
generan automáticamente un analizador léxico a partir de una especificación provista por el
usuario.
4.1FUNCIONES DE UN ANALIZADOR LÉXICO

Un analizador léxico aísla el analizador sintáctico de la representación de lexemas de los componentes léxicos.

Funciones:

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

Esta interacción, suele aplicarse convirtiendo al analizador léxico en una subrutina o corrutina del analizador
sintáctico. Recibida la orden "obtén el siguiente componente léxico" del analizador sintáctico, el analizador léxico
lee los caracteres de entrada hasta que pueda identificar el siguiente componente léxico.

Funciones secundarias.

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 pre procesamiento de
macros, entonces esas funciones del preprocesador también se pueden aplicar al hacer el análisis léxico.
4.2 Componentes Léxicos
SON LAS UNIDADES LÓGICAS QUE GENERA EL ANALIZADOR LÉXICO.  FORMAR CARACTERES EN TOKENS ES
MUY PARECIDO A FORMAR PALABRAS EN UN LENGUAJE NATURAL. 

ES EL CONJUNTO DE CADENAS DE ENTRADA QUE PRODUCE COMO SALIDA EL MISMO COMPONENTE


LÉXICO. CADA TOKEN ES UNA SECUENCIA DE CARACTERES QUE REPRESENTA UNA UNIDAD DE INFORMACIÓN
EN EL PROGRAMA FUENTE.

LOS COMPONENTES LÉXICOS MÁS COMUNES SON LOS SIGUIENTES:

Ø  PALABRAS CLAVE O RESERVADAS

Ø  OPERADORES ARITMÉTICOS

Ø  OPERADORES RELACIONALES

Ø  OPERADORES LÓGICOS

Ø  OPERADOR DE ASIGNACIÓN

Ø  IDENTIFICADORES
 Patrón: Regla que describe el conjunto de lexemas que pueden representar a un determinado
componente léxico en los programas fuente.

En otras palabras, es la descripción del componente léxico mediante una regla.

·  Lexema: Representan cadenas de caracteres en el programa fuente


que se pueden tratar juntos como una unidad léxica.  Un lexema es una secuencia de caracteres en
el
programa fuente con la que concuerda el patrón para un componente léxico.
4.3 Creación de tabla de tokens.

Tabla: conjunto de pares clave-valor, llamados elementos de la tabla. La tabla de símbolos es una componente
necesaria de un compilador. Al declarar un identificador (normalmente una sola vez), éste es insertado en la tabla.
Cada vez que se utilice el identificador se realizará una búsqueda en la tabla para obtener la información asociada
(el valor).

Búsqueda: dada la clave de un elemento, encontrar su valor.

·Inserción: Dado un par clave-valor, añadir un elemento nuevo a la tabla.

Cambio de valor: Buscar el elemento y cambiar su valor.

Borrado: Eliminar un elemento de la tabla.

Longitud de búsqueda (o tiempo de acceso)


4,4 ERRORES LÉXICOS
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.
Son pocos los errores simplemente en el nivel léxico ya que tiene una visión muy restringida de un
programa fuente. El analizador léxico debe devolver el componente léxico de un identificador y
dejar a otra fase se ocupe de los errores.
4.5 GENERADORES DE ANÁLISIS LÉXICOS
Un analizador léxico es un modo destinado a leer caracteres del archivo de entrada, donde se encuentra la cadena a
analizar, reconocer subcadenas que correspondan a símbolos del lenguaje y retornar los tokens correspondientes y sus
atributos.

o   Generador LEX:

Es un programa para generar analizadores léxicos, se utiliza comúnmente con el programa yacc que se utiliza para
generar análisis sintáctico, escrito originalmente por Eric Schmidt y Mike Lesk, es el analizador léxico estándar de
POSIX. Lex toma como entrada una especificación de analizador léxico y devuelve como salida el código fuente
implementando el analizador léxico en C.
Generador FLEX

Es una herramienta para la generación de programas que realizan corcondancia


de patrones en texto, es una herramienta para generar escanes. FLEX lee los
archivos de entrada dados, o la entrada estándar si no se ha indicado ningún
nombre de archivo, con la descripción de un escáner a generar. La descripción se
encuentra en forma de parejas de expresiones regulares y código C, denominadas
reglas.

Generador FLEX

Es una herramienta para la generación de programas que realizan corcondancia


de patrones en texto, es una herramienta para generar escanes. FLEX lee los
archivos de entrada dados, o la entrada estándar si no se ha indicado ningún
nombre de archivo, con la descripción de un escáner a generar. La descripción se
encuentra en forma de parejas de expresiones regulares y código C, denominadas
reglas.
4.6 APLICACIONES (CASO DE ESTUDIO)

• Además de para construir compiladores e intérpretes, los analizadores léxicos se


pueden emplear para muchos programas \convencionales”. Los ejemplos más
claros son aquellos programas que tienen algún tipo de entrada de texto donde
hay un formato razonablemente libre en cuantos espacios y comentarios. En
estos casos es bastante engorroso controlar donde empieza y termina cada
componente y es fácil liarse con los punteros a char. Un analizador léxico
simplifica notablemente la interfaz y si se dispone de un generador automático, el
problema se resuelve en pocas líneas de código.
CONCLUSIONES

• En conclusión el principal objetivo del analizador léxico es leer el flujo de


caracteres de entrada y transformarlo en una secuencia de
componentes léxicos que utilizará el analizador sintáctico. Al tiempo que realiza
esta función, el analizador léxico se ocupa de ciertas labores de "limpieza”.
REFERNCIAS

http://compiladorsistemas.blogspot.com/2010/11/lexemas-patrones-y-tokens.html

http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro32/22_componentes_lxico
patrones_y_lexemas.html

También podría gustarte