SIGNIFICADO DE COMPILAR
Para poder programar en C en nuestro ordenador nos hace falta un compilador. “Compilar” significa traducir el
código escrito en “Lenguaje entendible por humanos” (por ejemplo Java, C, Pascal, Fortran), a un código en
“Lenguaje Máquina”, que entienden las máquinas de computación, pero no entendible por nosotros.

Se hace esto porque a los humanos nos resultaría casi imposible trabajar directamente con el lenguaje de
los ordenadores. Es por eso por lo que usamos un lenguaje más asequible para nosotros (en nuestro caso C) y
luego empleamos un traductor (compilador). La creación de programas en muchos lenguajes se basa en un
proceso en dos pasos: 1) Escribir código fuente y 2) Compilar y obtener un programa ejecutable, que
posteriormente se podrá ejecutar tantas veces como se quiera. El compilador se encarga de evitar que se pueda
traducir un programa con código fuente mal escrito y de hacer otras verificaciones previas, de modo que el
código máquina tiene ciertas garantías de que cumple cuando menos con los estándares de sintaxis obligatorios
de un lenguaje. Gráficamente el proceso sería algo así:
En este esquema, el archivo ejecutable no es válido para cualquier ordenador. Por ejemplo, si se ha
generado el ejecutable para Windows, no podrá utilizarse en Linux. Sin embargo, como hemos dicho C es un
lenguaje estandarizado y apto para todas las plataformas. Por tanto sí podemos utilizar el mismo código fuente y
pasarlo por distintos compiladores para obtener los ejecutables en distintos sistemas operativos (como Windows,
Linux o MacOS).
Hay muchos compiladores C. Casi con total seguridad, ya tienes un compilador C (o más de uno) instalado
en tu ordenador, aunque no seas consciente de ello. ¿Por qué? Como hemos dicho C es un lenguaje que ha
tenido y tiene gran importancia tanto para sistemas operativos como para software, por ello muchos sistemas
operativos incorporan compiladores C.
Además del compilador, para programar en C vamos a usar un entorno de desarrollo o IDE (Integrated
Development Environment), que no es otra cosa que un programa para facilitar la escritura de programas y
utilización del lenguaje de programación.
Un entorno de desarrollo nos permite escribir código en un lenguaje o varios (en el caso de Code::Blocks
en dos lenguajes: C y C++) e incorpora habitualmente:
a) Un espacio para la escritura de código con cierta ayuda interactiva para generar programas y para indicar los
errores de sintaxis que se cometan por parte del programador.
b) Un compilador y la posibilidad de compilar y ejecutar el código escrito.
c) La posibilidad de organizar los proyectos de programación.
d) Herramientas auxiliares para programadores, útiles para detección de errores o análisis de programas
(debuggers).
e) Otras opciones como utilidades para pruebas, carga de librerías, etc. Tener en cuenta que el concepto
de IDE no está definido con precisión, de modo que no todos incorporan las mismas herramientas y posibilidades.
Existen distintos entornos de desarrollo o IDEs para lenguaje C, muchos de ellos están preparados para dar
soporte tanto a la programación en C como en C++ (ya hemos comentado que estos dos lenguajes tienen
muchas similitudes). Vamos a citar algunos de estos entornos: CodeLite (http://www.codelite.org/),
Code::Blocks (http://www.codeblocks.org/), Geany (http://www.geany.org/), Kdevelop
(http://www.kdevelop.org/), Anjuta DevStudio (http://projects.gnome.org/anjuta/index.html).
Estos entornos están en continua evolución, con cambios de versiones o, en algunos casos,
son proyectos que terminan abandonándose y dejándose de usar.
¿Qué IDE es el mejor? Cada entorno de desarrollo tiene sus ventajas y sus inconvenientes. De cara al
aprendizaje puede servirnos cualquiera de estos entornos, aunque nosotros vamos a recomendar y utilizar
en este curso Code::Blocks. El motivo para ello es que es un entorno sencillo y gratuito. Para el aprendizaje,
un entorno sencillo va a facilitar la tarea evitando que nos entretengamos en aprender cuestiones de detalle
sobre el IDE. Por supuesto que Code::Blocks tiene sus inconvenientes como el no ser tan completo o
potente como otros IDEs en algunos aspectos, pero eso no es una cuestión que tenga que preocuparnos ahora.
¿Desaconsejamos el uso de otro IDE? No, este curso se puede seguir con cualquier IDE o compilador C.
Hay que tener en cuenta que un IDE es una herramienta y que por tanto podremos usar alternativamente
una u otra en función de nuestras necesidades. Pongamos por caso que un IDE fuera un martillo:
¿qué martillo elegir?
Elegiremos como hacemos habitualmente en la vida cotidiana: el que nos recomiende una fuente de confianza,
o el que nos resulte más cómodo, o el que mejor sepamos usar. Para cada trabajo o situación que se nos
plantee, podremos elegir un tipo de martillo u otro.
Code::Blocks es un entorno relativamente sencillo. No obstante, hay que tener presente que es un entorno
completo y con grandes posibilidades tanto para el trabajo profesional como para el aprendizaje. No usa una
versión de C simplificada o recortada con fines de enseñanza.
EJERCICIO
No todos los lenguajes se compilan para obtener un código ejecutable. El motivo para ello es que
existen distintas alternativas para lograr un mismo objetivo. Algunos lenguajes son lenguajes
interpretados y los programas que realizan la traducción de estos lenguajes se dice que son intérpretes
(en lugar de compiladores). Busca información en libros o en internet y responde estas preguntas:
a) Cita al menos dos lenguajes interpretados.
b) ¿Cuál sería la principal ventaja de compilar frente a interpretar? ¿Y cuál el principal inconveniente?
No hay comentarios:
Publicar un comentario