Subscribe:

Ads 468x60px

domingo, 16 de octubre de 2016

ANÁLISIS LÉXICO.

FUNCIÓN DEL ANALIZADOR LÉXICO.

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.
Como el analizador léxico es la parte del compilador que lee el texto fuente, también puede realizar 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.
En algunas ocasiones, los analizadores léxicos se dividen en una cascada de dos fases; la primera, llamada "examen", y la segunda, "análisis léxico". El examinador se encarga de realizar tares sencillas, mientras que el analizador léxico es el que realiza las operaciones complejas.

ASPECTO DEL ANÁLISIS LÉXICO.

Hay varias razones para dividir la fase de análisis de la compilación en análisis léxico y análisis sintáctico.
  1. Un diseño sencillo es quizá la consideración más importante. Separar el análisis léxico del análisis sintáctico a menudo permite simplificar una u otra de dichas fases.
  2. Se mejora la eficiencia del compilador. Un analizador léxico independiente permite construir un procesador especializado y potencialmente más eficiente para esta función. Gran parte de tiempo se consume en leer el programa fuente y dividirlo en componentes léxicos. Con técnicas especializadas de manejo de buffer para la lectura de caracteres de entrada y procesamiento de componentes léxicos se puede mejorar significativamente el rendimiento de un compilador.
  3. Se mejora la transportabilidad del compilador. Las peculiaridades del alfabeto de entrada y otras anomalías propias de los dispositivos pueden limitarse al analizador léxico. 
COMPONENTES LÉXICOS, PATRONES Y LEXEMAS.

Cuando se menciona el análisis sintáctico, los términos "componente léxico"(token), "patrón" y "lexema" se emplean con significados específicos. En general, hay un conjunto de cadenas en la entrada para el cual se produce como salida el mismo componente léxico. Este conjunto de cadenas se describe mediante una regla llamada patrón asociado al componente léxico. Se dice que el patrón concuerda con cada cadena del conjunto. Un lexema es una secuencia de caracteres en el programa fuente con la que concuerda el patrón para un componente léxico.
Los componentes léxicos se tratan como símbolos terminales de la gramática del lenguaje fuente, con nombres en negritas para representarlos. Los lexemas para el componente léxico que concuerda con el patrón representan cadenas de caracteres en el programa fuente que se pueden tratar juntos como una unidad léxica.
En la mayoría de los lenguajes de programación, se consideran componentes léxicos las siguientes construcciones: palabra clave, operadores, identificadores, constante, cadenas literales y signos de puntuación, como paréntesis, coma y punto y coma.

ATRIBUTOS DE LOS COMPONENTES LÉXICOS.

Cuando concuerda con un lexema más de un patrón, el analizador léxico debe proporcionar información adicional sobre el lexema concreto que concordó con las fases del compilador.
El analizador léxico recoge información sobre los componentes léxicos en sus atributos asociados. Los componentes léxicos influyen en las decisiones del análisis sintáctico, y los atributos, en la traducción de los componentes léxicos. En la practica, los componentes léxicos suelen tener un solo atributo – un apuntador a la entrada de la tabla de símbolos donde se guarda la información sobre el componente léxico; el apuntador se convierte en el atributo del componente léxico. A efectos de diagnóstico, puede considerarse tanto el lexema para un identificador como el número de línea en el éste se encontró por primera vez. Estos dos elementos de información se pueden almacenar en la entrada de la tabla de símbolos para el identificador.

PARTES DE UN PROGRAMA FUENTE.

Las partes de un programa fuente son: Cabecera, Declaraciones, y partes de sentencias.
CABECERA: La cabecera de un programa consiste en el nombre del programa que se realiza.
La cabecera de un subprograma incluye, como mínimo; el tipo de subprograma (procedimiento o función) y su nombre, las funciones requieren o necesitan que se rectifique el tipo que devuelven.
DECLARACIONES: La sección de declaraciones incluye las definiciones de variables y constantes, etiquetas, tipos y subprogramas.

SENTENCIAS: Es la parte donde se realizan todas las operaciones que el programa debe de ejecutar.

0 comentarios:

Publicar un comentario

 
Blogger Templates