Analizador Lexico
Analizador Lexico
Analizador Lexico
ALUMNO
BALANCAN TABASCO.
ANALIZADOR LEXICO
Marco Teórico
El analizador léxico es la primera fase de un compilador. 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 Lexico
Convierte el programa fuente en una cadena de tokens
Para reconocer el token usa un patrón, una regla que describe como se forman las
cadenas que corresponden a un token.
Salta comentarios y espacios en blanco (tabuladores, saltos de línea...)
Tener el registro de la línea del archivo fuente que está siendo analizada
Genera mensajes de error léxico, y se recupera del error
Convierte los valores literales al tipo que corresponda
Si la entrada debe obedecer a un formato, verifica el formato Ej. Fortran, Cobol
Componentes léxicos
Un token: es un par que consiste en un nombre de token y un valor de
atributo opcional. El nombre del token es un símbolo abstracto que
representa un tipo de unidad léxica; por ejemplo, una palabra clave
específica o una secuencia de caracteres de entrada que denotan un
identificador. Los nombres de los tokens son los símbolos de entrada que
procesa el analizador sin táctico
Qué es un compilador
Un compilador es un pequeño programa informático, que se encarga de traducir
(compilar) el código fuente de cualquier aplicación que se esté desarrollando. En
pocas palabras, es un software que se encarga de traducir el programa hecho en
lenguaje de programación, a un lenguaje de máquina que pueda ser comprendido
por el equipo y pueda ser procesado o ejecutado por este.
Partes de un compilador
Front End: El Front End es la parte del compilador que interactúa con el
usuario y por lo general, es independiente de la plataforma en la que se
trabaja. Se encarga de realizar el análisis del código fuente a compilar y
verifica que este sea válido, así como también, genera el árbol de
derivación y rellena los valores de la tabla de símbolos.
Back End: Esta parte del compilador es la encargada de generar el código
en formato de máquina, a partir del trabajo hecho por el Front End.
Ventajas
Generan analizadores eficientes, incluso más que los que se pudiera hacer
de manera manual.
Los analizadores ascendentes reconocen la mayor parte de los lenguajes
Desventajas
Yacc usa herramientas externas para que le provean los tokens necesarios
Las acciones semánticas asociadas con las producciones de los no
terminales de las gramáticas son difíciles de depurar
Yacc no genera árboles de análisis sintáctico
Mezcla las especificaciones sintácticas con las semánticas
Incrementos en la dificultad del trabajo de depuración de puesto que los
errores que cometen el fichero de especificación con solo visibles en el
analizador generado.
¿Qué es la semántica?
Se llama semántica a una rama de la lingüística dedicada al estudio del
significado. Su nombre proviene del término griego sëmantikós (“significado
relevante”) y junto con la fonética, gramática y la morfosintaxis, constituye una de
las principales aproximaciones al estudio organizado del lenguaje verbal
La semántica enfrenta el signo lingüístico desde el interés por su parte inmaterial,
esto es, su parte mental, convencional y abstracta: el significado. Esto significa
que se interesa no sólo por la manera en que se forman los significados de las
palabras a partir de sus componentes (sus raíces y agregados), sino también del
modo en que los significados cambian a lo largo del tiempo y devienen otros,
cambiando junto con la cultura que emplea la lengua.
La finalidad de la semántica es descomponer el significado en unidades más
pequeñas, llamadas semas o rasgos semánticos, estos permiten segmentar el
significado de las palabras, y diferenciar palabras de significado parecido y
palabras de significado opuesto.
Tipos de semánticas
Abiertos: Dentro de los campos semánticos abiertos se incluyen aquellos
cuyo número de vocablos es infinito o indeterminado. Un ejemplo de esto
serían los tipos de comida (pasta, tamales, comida rápida, ensaladas,
pasteles, sopas, guisos, frituras …).
Cerrados: En casos muy concretos, el número de palabras que podrían
pertenecer a determinado campo semántico es finito. Tal es el caso de los
días de la semana, los signos zodiacales o los mares del mundo.