Codificación aprenderaprogramar.com: CU00506F
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?
Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.