Tipos de compiladores.
Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.
Compiladores incrementales: Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual.
Compilador con montador: Compila distintos módulos de forma independiente y después es capaz de aplazarlos.
Auto compilador: Compilador que está escrito en el mismo lenguaje que va a compilar.
Meta compilador: 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.
Descompilador: 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.
Pauta de creación de un compilador: En las primeras épocas de la informática, el software de los compiladores era considerado como uno de los más complejos existentes.
Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador.
- El primer compilador fue escrito por Grace Hopper en 1952, para el lenguaje de programacion A-0.
- El equipo FORTRAN dirigido por John W. Backus de IBM esta generalmente acreditado por haber presentado el primer compilador completo.
- 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.
- Existe un compilador en JAVA que evita: Errores de memoria, imposibilidad de acceso al SO, evita que caiga la maquina sobre la que corre.