Skip to main content

¿Qué es un compilador?

Un compilador es un tipo especial de programa de computadora que traduce un archivo de texto legible por humanos en una forma que la computadora puede entender más fácilmente. En su nivel más básico, una computadora solo puede entender dos cosas, un 1 y un 0. En este nivel, un humano operará muy lentamente y encontrará incomprensible la información contenida en la larga cadena de 1s y 0s. Un compilador es un programa de computadora que cierra esta brecha.

Al principio, los compiladores eran programas muy simples que solo podían traducir símbolos a los bits , los 1 y los 0, según entendió la computadora. Los programas también fueron muy simples, compuestos de una serie de pasos que fueron traducidos originalmente a mano en datos que la computadora podía entender. Esta era una tarea que requería mucho tiempo, por lo que partes de esta tarea se automatizaron o programaron, y se escribió el primer compilador. Este programa reunió o compiló los pasos necesarios para ejecutar el programa paso a paso.

Estos compiladores simples se usaron para escribir un compilador más sofisticado. Con la versión más nueva, se podrían agregar más reglas al programa compilador para permitir una estructura de lenguaje más natural para que el programador humano pueda operar. Esto facilitó la escritura de programas y permitió que más personas comenzaran a escribir programas. A medida que más personas comenzaron a escribir programas, se ofrecieron más ideas sobre programas de escritura y se utilizaron para hacer compiladores más sofisticados. De esta manera, los programas compiladores continúan evolucionando, mejorando y siendo más fáciles de usar.

Los programas compiladores también pueden ser especializados. Ciertas estructuras de lenguaje son más adecuadas para una tarea en particular que otras, por lo que se desarrollaron compiladores específicos para tareas o idiomas específicos. Algunos compiladores son de varias etapas o de paso múltiple . Un primer paso podría tomar un lenguaje muy natural y acercarlo a un lenguaje entendible por computadora. Un segundo o incluso un tercer pase podría llevarlo a la etapa final, el archivo ejecutable.

La salida intermedia en un compilador de etapas múltiples generalmente se llama pseudocódigo , ya que no puede ser utilizada por la computadora. El seudocódigo es muy estructurado, como un programa de computadora, no fluye libremente y es detallado como un lenguaje más natural. El resultado final se llama archivo ejecutable , ya que es lo que realmente ejecuta o ejecuta la computadora. Dividir la tarea de esta manera facilitó la escritura de compiladores más sofisticados, ya que cada subtarea es diferente. También facilitó que la computadora señalara dónde tenía problemas para entender lo que se le pedía que hiciera.

Los errores que limitan al compilador en la comprensión de un programa se denominan errores de sintaxis . Los errores en la forma en que funciona el programa se denominan errores lógicos . Los errores lógicos son mucho más difíciles de detectar y corregir. Los errores de sintaxis son como errores ortográficos, mientras que los errores lógicos son un poco más como errores gramaticales.

También se han desarrollado programas de compilación cruzada. Un compilador cruzado permite que un conjunto de instrucciones de archivo de texto escrito para una computadora diseñada por un fabricante específico sea compilado y ejecutado para una computadora diferente por un fabricante diferente. Por ejemplo, un programa que fue escrito para ejecutarse en una computadora Intel a veces puede ser compilado para ejecutar una computadora desarrollada por Motorola. Esto con frecuencia no funciona muy bien. En el nivel en que operan los programas de computadora, el hardware de la computadora puede verse muy diferente, incluso si se parecen a usted.

La compilación cruzada es diferente de hacer que una computadora emule a otra computadora. Si una computadora está emulando una computadora diferente, está fingiendo ser esa otra computadora. La emulación es con frecuencia más lenta que la compilación cruzada, ya que dos programas se ejecutan a la vez, el programa que pretende ser la otra computadora y el programa que se está ejecutando. Sin embargo, para que funcione la compilación cruzada, necesita el texto original en lenguaje natural que describe el programa y una computadora que sea lo suficientemente similar a la computadora original en la que el programa pueda funcionar para ejecutarse en una computadora diferente. Esto no siempre es posible, por lo que ambas técnicas están en uso.