Vous êtes sur la page 1sur 4

Lenguajes Y Autómatas Unidad 5: Análisis Léxico

08/Mayo/2018

INSTITUTO TECNOLOGICO DE NUEVO LEON


INGENIERIA EN SISTEMAS COMPUTACIONALES MODALIDAD
VIRTUAL

ALUMNO; JUAN PABLO JERONI

TUTOR; Ing. Fernando Ferrero Ramon

CORREO; fernando.ferrero@itnl.edu.mx

ALUMNO; Juan Pablo Jerónimo

CORREO; Pabloju86@gmail.com

MATERIA; Lenguaje Y Autómatas

UNIDAD 5; Análisis Léxico

TEMA O ACTIVIDAD; Examen Resuelto

NO CONTROL; 15480788
Lenguajes Y Autómatas Unidad 5: Análisis Léxico
1. Conteste las siguientes preguntas.

a) Menciona 5 funciones del analizador Léxico

 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.

b) ¿Qué es un componente?

Es la secuencia lógica y coherente de caracteres relativo a una categoría: identificador, palabra


reservada, literales (cadena/numérica), operador o carácter de puntuación, además de que un
componente léxico puede tener uno o varios lexemas.

c) ¿Qué es un lexema?

Es una cadena de caracteres que concuerda con un patrón que describe un componente léxico
(valor de cadena). Ejemplo de una cadena de código: const pi = 3.1416;

d) ¿Cuáles son los tipos de Tokens?

Los tipos de token solamente se pueden interpretar de dos maneras:

• Tiras especificas
• Titas no especificas

e) Plasma en una tabla un mínimo de 3 entre tokens y lexemas

Lexemas Componente Léxico Token


Const Const Const
= Relación <0<=0=0<>0>0>=
Pi Identificador Letra seguida de letras o
números
3.1416 Numero Cualquier literal
numérica
“hola mundo” Literal Caracteres entre comilla
Lenguajes Y Autómatas Unidad 5: Análisis Léxico
f) ¿Cómo funciona el analizador Léxico (detalladamente)?

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 el analizador sintáctico (en inglés parser).

g) ¿Cómo diferenciar los identificadores en este analizador?

Se puede ver que los identificadores tienen asociados como atributos el lugar de la tabla de
símbolos donde se han guardado y a veces el analizador sintáctico es el único que maneja la
tabla de símbolos, en ese caso llevan asociado el propio lexema.

h) ¿Cómo funciona cada identificador?

Para ser el uso de los tokens requieren una señal que el computador reciba esa señal esta
acompañadas de:

Constantes: Su valor
Identificadores: el String
Operaciones relacionales: Su identificación

i) ¿Cuáles son los errores léxicos y porque suceden?

Los errores léxicos se detectan cuando el analizador léxico intenta reconocer componentes
léxicos y la cadena de caracteres de la entrada con encaja con ningún patrón. Son situaciones
en las que usan un carácter invalido (@,$,”,>...) que no pertenece al vocabulario del lenguaje
de programación, al escribir mal un identificador, palabra reservada u operador. Los errores
léxicos que existen son:

 Nombres ilegales de identificadores, Un nombre contiene caracteres inválidos


 Números incorrectos
 Errores de ortografía en palabras reservadas
 Fin de archivo

Los errores léxicos se deben a descuidos del programador. En general, la recuperación de


errores léxicos es sencilla y siempre se traduce en la generación de un error de sintaxis que
será detectado más tarde por el analizador sintáctico cuando el analizador léxico devuelve un
componente léxico que el analizador sintáctico no espera en esa posición.
Lenguajes Y Autómatas Unidad 5: Análisis Léxico
j) ¿Qué es un generador de analizador léxico?

Existen varias herramientas para el tratamiento masivo de la información contenida en ficheros


de texto, que nos permiten traducir el lenguaje contenido en el código fuente a un lenguaje fácil
de comprender para el próximo analizador: el sintáctico, todos estos análisis se van elaborando
paso a paso dentro de la ‘línea’.

Todas ellas se apoyan en las expresiones regulares para llevar a cabo su cometido, y permiten
encadenar su salida a modo de tubería con otras herramientas, para que de esta forma se
aumentase su potencia de procesamiento. Pero a menudo todo esto no es suficiente. En
ocasiones se requiere poder realizar acciones de más alto nivel o bien mucho más complejas
en cada ocurrencia de una expresión regular. El corazón del generador del analizador léxico
es su algoritmo para producir una máquina de estados finitos El algoritmo que se presenta está
basado en un método para generar un autómata finito determinístico (AFD) de estados
mínimos

k) Menciona alguna aplicación de este analizador Léxico

Algunas aplicaciones de los analizadores léxicos son:

 El analizador léxico divide la entrada en componentes léxicos.


 Los componentes se agrupan en categorías léxicas.
 Asociamos atributos a las categorías léxicas.
 Especificamos las categorías mediante expresiones regulares.
 Para reconocer los lenguajes asociados a las expresiones regulares empleamos
autómatas de estados finitos(AFD).
 se pueden crear los AFD directamente a partir de la expresión regular.
 El analizador léxico utiliza la maquina discriminadora determinista.
 El tratamiento de errores en nivel léxico es muy simple.
 Se pueden emplear las ideas de los analizadores léxicos para facilitar el tratamiento de
ficheros de texto.

como conclusión los analizadores léxicos son una aplicación de los compiladores que se
encargan de verificar que el texto este escrito en un formato aceptado para todo el programa
que está escrito en un lenguaje de programación al igual que se encarga de verificar que tenga
congruencia, los analizadores léxicos sirven en gran parte para resolver problemas que pueden
surgir a causa de que el programa no tenga congruencia o no esté bien estructurado.