Page 45 - LENGUAJES FORMALES AUTOMATAS Y COMPILADOS
P. 45
45
COMPILADORES E INTÉRPRETES
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de
programación a otro lenguaje de programación, generando un programa equivalente que la
máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero
también puede ser un código intermedio o simplemente texto. Este proceso de traducción se
conoce como compilación.
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje
de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera
un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un
ser humano, para luego compilarlo a un programa más manejable por una computadora
Sin duda conceptualmente hablamos de un traductor, y un traductor es un intermediario entre el
emisor y el receptor, este traductor debe de alguna forma encapsular la complejidad del lenguaje,
convirtiendo la fuente en objeto.
El proceso básico de la traducción es el siguiente:
Programa
Fuente Analizador Analizador Generador
léxico sintáctico de código
Objeto
Algunos conceptos:
Ensamblador: es un tipo de programa informático que traduce un archivo fuente escrito en
lenguaje ensamblador a un fichero objeto que contiene código de máquina ejecutable para la
máquina para el que fue generado. O sea que en la tarea fundamental del ensamblador es generar
el código ejecutable de máquina a partir del programa ya en lenguaje ensamblador.
Se usan ensambladores porque:
Proveen un mayor control de la computadora.
Hay total independencia del lenguaje.
Los programas en ensamblador generalmente son más rápidos y consumen
menos recursos.
Desventajas en su uso:
Son más complicados y complejos.
Se requiere un conocimiento más profundo de la computadora, en tanto que se
programa a bajo nivel, se requiere manejar registros y posiciones de memoria,
etc.
Usualmente genera más error.
Se demora más tiempo construir el programa (la codificación).
Y no son portables.