Analizador Léxico.

Description

Mind Map on Analizador Léxico., created by Aliss Sáchez on 05/03/2021.
Aliss Sáchez
Created by Aliss Sáchez
Aliss Sáchez
Created by Aliss Sáchez over 5 years ago
14
0

Resource summary

Analizador Léxico.
  1. Analizador léxico también conocido como analizador morfólogico o scanner, es el elemento del compilador de la division del codigo fuente en un conjunto de unidades sintácticas con sentido lógico.
    1. Que es un token: URL: https://www.cartagena99.com/recursos/alumnos/apuntes/ININF2_M4_U2_T1.pdf
      1. Tipos de tokens posibles: URL: https://elibro.net/es/ereader/umg/106460
        1. Palabras reservadas del sistema.
          1. Identificadores.
            1. Literales.
              1. Números.
                1. Operadores y símbolos operacionales.
              2. Formas de interaccionar las fases léxicas y sintácticas,
                1. El analizador léxico opera a petición del analizador sintáctico.
                  1. La fase léxica puede hacer un análisis de todos los componentes léxicos del código fuente.
                2. Responsabilidad de un analizador léxico como fase de un compilador
                  1. En esta fase de compilación lo principal será leer la secuencia de caracteres del programa fuente, carácter por carácter, y agruparlos.
                  2. ¿Por qué separar el análisis léxico del análisis sintáctico?
                    1. Primero: Si la fase del análisis léxico y sintáctico se encuentran separadas, bien en clases diferentes, bien en objetos distintos o simplemente en métodos o subprogramas distintos podremos realizar modificaciones en la especificación léxica o sintáctica del código fuente .
                      1. Segundo: el diseño y la implementación de las distintas fases del compilador serán mas simples, a la vez que mas eficientes.
                        1. Tercero: separar el análisis léxico del sintáctico nos permitirá centralizar, en un único módulo o clase, la lectura fisica de los caracteres, lo que facilita tratamientos especializados de E/S
                        2. Tratamiento De Los Errores Léxicos
                          1. Normalmente los errores durante esta etapa son escasos, ya que el compilador tiene todavía una visión muy local del programa.
                            1. Los errores léxicos se pueden agrupar entre los siguiente:
                              1. Símbolos no permitidos.
                                1. Identificadores mal construidos.
                                  1. Valores numéricos mal construidos.
                                    1. Constante literal mal construida.
                                      1. Al detectar un final de archivo a la mitad de un componente léxico.
                                    2. alternativas para el tratamiento de errores en analizadores léxicos.
                                      1. Ignorar los caracteres no validos hasta formar un token aceptado.
                                        1. Borrar los caracteres inválidos
                                          1. Insertar un carácter que pudiera ser necesario.
                                            1. Reemplazar un carácter incorrecto o reemplazar caracteres adyacentes
                                          2. Definición Del Vocabulario Básico Para Un Analizador Léxico.
                                            1. Componente léxico o token: Son los elementos del lenguaje con sentido lógico propio.
                                              1. Lexema: Secuencia de caracteres del código fuente que concuerda con el patrón de un token.
                                                1. Tabla de componentes léxicos o tablas de tokens: estructura de datos donde se almacenan los tokens.
                                                  1. Atributos de los componentes léxicos: Es la información adicional sobre los tokens, (el número de atributos y la forma de implementar las distintas fases del compilador.
                                                    1. Alfabeto: Es un conjunto finito y no vacío de símbolos.
                                                      1. Cadena: secuencia finita de símbolos
                                                        1. Cadena vacía:
                                                          1. Operación de cadenas o palabras.
                                                            1. Longitud:: es el numero de símbolos que forman la cadena.
                                                              1. Concatenación
                                                                1. Igualdad de cadenas.
                                                                  1. Potencia de cadenas.
                                                                2. Lenguajes regulares: ver imagen.
                                                                  1. Elementos de un lenguaje. Ver imagen.
                                                                    1. Operaciones con lenguajes: ver imagen
                                                                      1. Expresiones regulades: una ER es una forma abreviada de representar cadenas de caracteres.
                                                                        1. Concatenación
                                                                          1. Unión.
                                                                            1. Cierre o clausura.
                                                                            2. Abreviatura en la notación: ver imagen.
                                                                              1. AFD. un autómata finito determinista.
                                                                                1. AFN autómata finito no determinista.
                                                                                  1. Diferencia entre AFN y AFD
                                                                                    1. Equivalencia entre AFN y AFD
                                                                                      1. Autómata finito no determinista con transiciones nulas.
                                                                                        1. Expresiones básicas. Ver imagen.
                                                                                2. Especificación de un analizador léxico.
                                                                                  1. Existen tres métodos generales.
                                                                                    1. Utilizar un generador de analizadores léxicos, como el compilador LEX.
                                                                                      1. Escribir el analizador léxico en un lenguaje convencional de programación en sistemas.
                                                                                        1. Escribir el analizador léxico en lenguaje ensamblador y manejar explícitamente la lectura de la entrada.
                                                                                        2. Reconocimiento de los componentes léxicos.
                                                                                          1. Consta de una serie de pasos a seguir para la implementacion de un analizador.
                                                                                            1. Crear tabla de tokens con :
                                                                                              1. Nombre del componente léxico.
                                                                                                1. Lexema de ejemplo.
                                                                                                  1. Descriptor informal del patrón.
                                                                                                  2. Construir un diagrama de transiciones para poder reconocer las diferentes cadenas del código fuente.
                                                                                                    1. Para DT podemos seguir los siguientes pasos.
                                                                                                      1. Obtener la expresión regular asociada a la especificación del lenguaje de programación.
                                                                                                        1. De la expresión regular crearemos el AFN-e que acepte el lenguaje asociado a dicha expresión regular.
                                                                                                          1. Obtener el AFN equivalente al AFN-e anterior, esto es, que acepte el mismo lenguaje.
                                                                                                            1. Transformar el AFN obtenido en un AFD
                                                                                                              1. Minimizar el AFD resultante, que compruebe si las cadenas de caracteres pertenecen o no al lenguaje.
                                                                                                                1. Obtener el DT a partir del AFD. De este modo, este s funcionará ya como un analizador léxico.
                                                                                                                  1. Implementación del DT
                                                                                                                    1. La interacción entre las fases léxicas y sintacticas.
                                                                                                                      1. El procedimiento de identificación de palabras reservadas del lenguaje de programación que queremos compilar.
                                                                                                                        1. Otros factores que afectan a la implementación es el lenguaje de programación en el que la llevemos a cabo.
                                                                                                              2. Video de analizador
                                                                                                                1. Direcci´ñon de video URL: https://youtu.be/zS2Bw8vOZYU
                                                                                                                Show full summary Hide full summary

                                                                                                                Similar