Compiladores

David  	Elias
Mind Map by David Elias, updated more than 1 year ago More Less
David  	Elias
Created by David Elias over 1 year ago
15
0
0

Description

Mind Map on Compiladores, created by David Elias on 07/30/2018.

Resource summary

Compiladores
1 Que es un Compilador?
1.1 Es un programa informatico que traduce el codigo de un programa que ha sido escrito en un lenguaje de programacion de alto nivel a lenguaje maquina, tambien conocido como bytecode.
2 Fases de un Compilador
2.1 Analisis léxico
2.1.1 Análisis sintáctico
2.1.1.1 Análisis semántico
2.1.1.1.1 Generación de código intermedio
2.1.1.1.1.1 Optimización del código intermedio
2.1.1.1.1.1.1 Generacion del código
2.1.1.1.1.1.1.1 Optimizacion de código
2.1.1.1.1.1.1.1.1 En esta fase se toma todo el codigo maquina y se trata de mejoralo para consumir menor cantidad de recursos (CPU, memoria) y asi ofrecer una velocidad mas alta.
2.1.1.1.1.1.1.2 En esta fase, se traduce el codigo intermedio optimizado a una secuencia reubicable de código máquina.
2.1.1.1.1.1.2 Esta fase esta encargada de eliminar código intermedio innecesario, asi mismo organiza la secuancia de declaraciones con el fin de acerar la ejecución del programa sin desperdiciar recursos(CPU, memoria).
2.1.1.1.1.2 Esta fase es denominada por algunos como la maquina abstracta. Es un codigo entre el lenguaje de alto nivel y el lenguaje maquina. Este codigo intermedio se genera para que la traducción al lenguaje maquina sea mas sencilla.
2.1.1.1.2 En el análisis semántico se comprueba si el árbol de sintaxis sigue las reglas del idioma. El analizador semantico produce un árbol de sintaxxis anotado como una salida.
2.1.1.2 En esta fase se toman los tokens generados en el análisis léxico como entrada y genera un árbol analizar (o árbol de sintaxis). En esta fase, se genera un arreglo de tokens con respecto a su secuencia y se contrasta con el codigo gramatical, es decir, el analizador comprueba si la expresión de los tokens es sintacticamente correcto.
2.1.2 Su funcion es meramente escánear el texto. Esta fase busca en el codigo fuente una secuencia de caracteres y las convierte en un lexema resultante, de esta manera se verifica que todos los caracteres pertenezcan al alfabeto del lenguaje de programacion en el cual se este trabajando. El análisis léxico representa los lexemas resultantes en forma de fichas denominandolos "tokens".
3 Tipos de Compiladores
3.1 Compiladores cruzados
3.1.1 Generan código para un sistema distinto del que están funcionando.
3.2 Compiladores optimizadores
3.2.1 Realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
3.3 Compiladores de una sola pasada
3.3.1 Generan el código máquina a partir de una única lectura del código fuente.
3.4 Compiladores de varias pasadas
3.4.1 Necesitan leer el código fuente varias veces antes de poder producir el código máquina.
3.5 Compiladores JIT (Just In Time)
3.5.1 Forman parte de un intérprete y compilan partes del código según se necesitan.
3.6 Compiladores incrementales
3.6.1 Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual.
3.7 Compilador con montador
3.7.1 Compila distintos módulos de forma independiente y después es capaz de aplazarlos.
3.8 Auto compilador
3.8.1 Compilador que está escrito en el mismo lenguaje que va a compilar.
3.9 Meta compilador
3.9.1 Es programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje.
3.10 Descompilador
3.10.1 Es un programa que acepta como entrada código maquina y la traduce a un lenguaje de alto nivel realizando el proceso inverso a la compilación.
4 Datos Historicos Relevantes
4.1 El primer compilador fue escrito por Grace Hopper en 1952, para el lenguaje de programacion A-0.
4.2 El equipo FORTRAN dirigido por John W. Backus de IBM esta generalmente acreditado por haber presentado el primer compilador completo.
4.3 El compilador COBOL para el UNIVAC II fue probablemente el primero en ser escrito en un lenguaje de alto nivel, llamado FLOW-MATIC, por un equipo dirigido por Grace Hopper.
4.4 Existe un compilador en JAVA que evita: Errores de memoria, imposibilidad de acceso al SO, evita que caiga la maquina sobre la que corre.
5 Nombre: David Rolando Elias Montufar Carne: 201700675
Show full summary Hide full summary

Similar

Compilador
Ricardo Ramirez
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
UNIDAD 4 TEORIA MATEMATICA
Jh O
Lenguajes de programación
Jonatan Pinto
1ER PARCIAL COMPILADORES
Estephania Molina