Programación básica en C (1/7)
Con esta publicación comienza una serie de 7 publicaciones que abarcaran lo básico de la programación en C. Como esto es una publicación en un blog se intentara resumir para evitar una extensión excesiva. El material de estas siete publicaciones es parte de un manual que esta tomando forma a la vez que estas siete publicaciones salen a la luz, con algún contenido adicional al no tener que mirar tanto la extensión, pero nada esencial para seguir estas siete publicaciones.
El que sean siete publicaciones es sencillamente por que tanto estas publicaciones como el manual están pensados para aprender C en una semana. Para esto el material esta redactado con cuidado teniendo en cuenta otras disciplinas como la psicología, técnicas de estudio, mnemotecnia, el funcionamiento de la memoria, etc, etc.
Introducción.
C es un lenguaje de medio nivel con características de bajo nivel y estructuras propias de lenguajes de alto nivel. Es débilmente tipificado y muy simple con un conjunto reducido de palabras clave, ampliando sus funcionalidades con bibliotecas. C es apreciado por la eficiencia del código que produce. Es un lenguaje compilado, aunque se han desarrollado interpretes de C pese a estar orientado a ser compilado.
Esquema general de un ordenador.
Un ordenador es un sistema informático. El objetivo de un sistema informático es el procesamiento automático de la información, y esta formado por una parte física, denominada hardware, y una parte lógica, denominada software. El hardware permite el funcionamiento del software, sin el hardware no seria posible el software. El software son las instrucciones que controlan el funcionamiento del hardware y nos permite procesar la información.
Un sistema informático, de forma muy resumida, esta formado por al menos una unidad central de procesamiento (CPU o UCP), encargada de controlar y gobernar todo el sistema informático; la memoria, en la que se almacenan las instrucciones y datos con los que se esta trabajando, es volátil por lo que su contenido se pierde al apagar el sistema informático; y una unidad de entrada y salida, la cual permite la comunicación del sistema informático con diversos periféricos de los que recibir o a los que enviar datos, pudiendo darse ambos casos para un mismo periférico.
Los sistemas informáticos trabajan con datos binarios, es decir, solo pueden trabajar con ceros y unos, a las instrucciones en binario se las denomina código maquina. Estos ceros y unos se almacenan en la memoria como no pasa corriente y pasa corriente, respectivamente. La unión de 8 bits se denomina byte. Cada posición de memoria tiene un tamaño de 1 byte y esta identificada por un numero, al que se denomina dirección de memoria.
Para el funcionamiento del sistema informático es necesario un sistema operativo, este es un elemento de software, esta formado por un conjunto de programas. Se denomina núcleo (kernel) a el programa del sistema operativo que se encarga de las tareas más básicas como son la gestión de la memoria, y cargar en memoria y ejecutar el resto del software del sistema operativo. El núcleo podría también realizar otras funciones, o incluso menos si la gestión de memoria la realizase otro programa del sistema operativo, pero el cargar y ejecutar el resto de programas es esencial.
Concepto de programa y de función.
Un programa es un conjunto de instrucciones. Un programa organiza todas las instrucciones en funciones, de forma que una función es un conjunto de instrucciones de un programa. La división de las instrucciones de un programa en varias funciones presenta como ventajas: la modularización, puede ser ejecutada muchas veces en un programa, o incluso puede ser usada en varios programas, y cada función puede ser desarrollada por separado; ahorro de memoria y tiempo de desarrollo, al poderse ejecutar una función muchas veces el numero total de instrucciones de un programa disminuye, y con esto disminuye la posibilidad de introducir errores en el programa; y la independencia de datos, mantiene una gran independencia con respecto al resto del programa: una función acepta unos datos específicos, realiza una tarea muy concreta y da un resultado especifico.
Herramientas.
Para escribir código en C solo necesitaremos un editor de texto. El código escrito en C se guarda en archivos con extensión c, es por ello que al nombre del archivo le debe seguir un punto y una c. Para poder ejecutar un programa escrito en C es necesario que el código escrito en C sea convertido en código maquina. De esto se encarga un programa al que se denomina compilador. Este puede ser una aplicación, es decir, un conjunto de programas, y cada programar realizar una parte diferente del proceso con el que obtenemos el código maquina a partir del código fuente escrito en C. El código fuente para convertirlo en código maquina es primero preprocesado, el preprocesador realiza unas operaciones concretas que modifican el código fuente antes de ser compilado, estas operaciones en su mayoría son sustituciones que ahorran tiempo, trabajo o facilitan la labor de programar; el compilador convierte el código en C a código en ensamblador, el cual es un lenguaje de programación de bajo nivel, muy cercano al código maquina, además se encargara de detectar ciertos errores e informar al programador de ellos; el ensamblador convierte el código en ensamblador a código maquina, que en esta fase se denomina código objeto ya que hasta que no sea enlazado no podremos ejecutarlo, esta conversión de ensamblador a código maquina es muy sencilla debido a que el lenguaje ensamblador son instrucciones con nombres nemotecnicos con una instrucción equivalente en código maquina; por ultimo el enlazador se encarga de juntar todo el código objeto y bibliotecas de forma correcta y de generar el archivo ejecutable con el formato apropiado según el sistema operativo.
El código en C de un programa puede estar repartido en distintos archivos, cada archivo deberá ser compilado y ensamblado y el código objeto de todos sería juntado por el enlazador. Cuando los programas son grandes es muy útil poder dividir el código en C en varios archivos, ya que al modificar el código de un archivo solo este tendrá que ser compilado y ensamblado, y luego se realizara el enlazado de todo el código objeto nuevamente.
19 febrero, 2011 a 2:08
Bien exelente estoy estudiando informatica y este es el primer lenguage que devo aprender me servira vastante gracias por el aporte.
9 marzo, 2011 a 13:34
Hola Rodrigo, de paso también te servirá el saber escribir bien, porque si escribes mal en tu idioma materno, en este y en ningun lenguaje debes hacer eso, lo de errar al escribir ^^.
Lenguaje C no acepta errores ortográficos.
Saludos.