Compiladores

Description

Mapa Conceptual sobre la definición de un compilador, sus partes, los programas en que se apoya y sus ventajas
Mariana Elizabeth Tabín
Mind Map by Mariana Elizabeth Tabín, updated more than 1 year ago
Mariana Elizabeth Tabín
Created by Mariana Elizabeth Tabín almost 7 years ago
159
0

Resource summary

Compiladores
  1. Recibe como entrada lenguaje de programación de alto nivel (fuente) y genera como salida un lenguaje de programación de bajo nivel como ensamblador o código máquina (objeto). Muchos compiladores generan un programa en lenguaje ensamblador que se convierte en ejecutable por medio de un ensamblador.
    1. Este tiene varias ventajas como: El programa se compila una sola vez pero se puede ejecutar varias veces, la ejecución del objeto es más rápida y puede dar información más detallada de los errores cometidos al codificarlo
      1. Se apoya en varios programas para funcionar:
        1. Prepocesador: incluye ficheros, expande macros, elimina comentarios, etc
          1. Enlazador: construye el fichero ejecutable añadiendo cabeceras necesarias y las funciones de librería utilizadas
            1. Depurador: permite seguir paso a paso la ejecución del programa
            2. Sus componentes son:
              1. Analizador de léxico: Lee los caracteres de la fuente uno a uno y va formando grupos de caracteres con alguna relación entre sí (tokens), que son tratados como una única entidad constituyendo la entrada de la siguiente fase. Frecuentemente funciona como subrutina del analizador sintáctico. Existen diferentes tipos:
                1. Cadenas específicas: No tienen ningún valor, solo tipo. Estas son palabras reservadas, signos de puntuación y operadores aritméticos y lógicos
                  1. Cadenas no específicas: tienen tipo y valor. Estas son los identificadores y datos que se utilizan para almacenar variables
                  2. Análisis Sintáctico: Recibe como entrada los tokens generados por el analizador léxico y comprueba si estos van llegando en el orden correcto. Si no hay errores la salida es un árbol sintáctico, de lo contrario se generarán los mensajes de error correspondientes. Para su diseño se utilizan Autómatas de Pila.
                    1. Análisis Semántico: Determina si el significado de las diferentes instrucciones del programa son válidas. Para ello calcula y analiza información asociada a las sentencias del programa. Su salida es un árbol semántico, el cual es una ampliación del árbol sintáctico en el que cada rama adquiere el significado del fragmento del programa que representa.
                      1. Generación de código intermedio: Crea un código intermedio que es independiente de la fuente y el objeto y luego de convertirlo al lenguaje del objeto. Esto permite construir en menos tiempo compiladores para nuevos lenguajes y máquinas.
                        1. Generación del código objeto: El código intermedio optimizado es traducido a una secuencia de instrucciones en ensamblador o en código máquina.
                          1. Tabla de símbolos: Estructura interna que guarda la información gestionada de los elementos que se encuentran en el programa fuente. Se debe de diseñar cuidadosamente de manera que contenga toda la información que el compilador necesita, prestando atención a la velocidad de acceso a la información
                            1. Control de errores: Informa adecuadamente al programador de los errores que hay en su programa.
                              1. Optimización de código: optimisa el código. Esto se añade para conseguir que el programa objeto sea más rápido y necesite menos memoria para ejecutarse.
                              Show full summary Hide full summary

                              Similar

                              Retroalimentación Lenguajes
                              Karen Cortés de R.
                              RETROALIMENTACION TRADUCTORES Y SU ESTRUCTURA
                              Patricia Zanotelli
                              Retroalimentación Traductores y su Estructura
                              Dani Hernández
                              retroalimentación Traductores y su Estructura
                              Javi NolPer
                              retroalimentacion lenguajes
                              omar duran cogque
                              INTERPRETES
                              SAUL CORTES
                              Autómatas y Compiladores
                              José Alfaro Quirós
                              1ER PARCIAL COMPILADORES
                              Estephania Molina
                              Optimización de Código
                              rodrigoblanco539
                              Compilador
                              p f
                              Optimización de Código
                              Alberto Gines