GoConqr has a new look! Let us know what you think.

Mind map

Compiladores

Mariana Elizabeth Tabín Spanish

Mapa mental sobre compiladores: componentes, análisis léxico, sintáctico y semántico

Mapa mental: compiladores

Map content

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.

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

  3. Se apoya en varios programas para funcionar:

    • Prepocesador: incluye ficheros, expande macros, elimina comentarios, etc
    • Enlazador: construye el fichero ejecutable añadiendo cabeceras necesarias y las funciones de librería utilizadas
    • Depurador: permite seguir paso a paso la ejecución del programa
  4. Sus componentes son:

    • 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:
      • 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
      • Cadenas no específicas: tienen tipo y valor. Estas son los identificadores y datos que se utilizan para almacenar variables
    • 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.
    • 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.
    • 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.
    • 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.
    • 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
    • Control de errores: Informa adecuadamente al programador de los errores que hay en su programa.
    • 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.

Information

Description
Mapa Conceptual sobre la definición de un compilador, sus partes, los programas en que se apoya y sus ventajas
Views
178
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?