Programación

De MateWiki
Saltar a: navegación, buscar

La Programación se refiere a la actividad de escribir programas que son ejecutados por ordenadores. El programa se escribe en un lenguaje de programación, que el ordenador interpreta o compila. Para escribir un programa, además de conocer el lenguaje de programación, es necesario diseñar, pensar y planificar bien el problema que se va a resolver. Los programas se conocen también por el nombre software. Ambos términos son sinónimos.

1 Qué es un programa

El ordenador no es capaz de funcionar sin programas. Un ordenador típico está formado por componentes electrónicos, organizados en una cierta arquitectura. Por ejemplo, los ordenadores más habituales hoy en día tienen un procesador (CPU), una memoria RAM (que es volátil, se pierde al apagar el ordenador), una unidad de almacenamiento permanente (normalmente, un disco duro) y otros dispositivos. El procesador y la memoria se comunican para intercambiarse instrucciones, valores y resultados de operaciones. Las operaciones ocurren en el procesador, y sus resultados se guardan en la memoria.

Este proceso de comunicaciòn entre el procesador y la memoria (y muchos otros que ocurren en el ordenador) los realiza un programa que se denomina sistema operativo. Por ejemplo, Windows es un sistema operativo. Es decir, siempre que usamos un ordenador estamos haciéndolo a través de un programa. El ordenador por sí solo, sin software, no puede hacer nada.

Existen otros tipos de programas que usamos de manera más consciente. Por ejemplo, procesadores de textos, navegadores web, programas de mensajería, correo electrónico.

Los programas, además de con personas, interactúan con otros programas. Por ejemplo, un navegador web se comunica con un servidor web, que es un programa que se ejecuta en otro ordenador.

Escribir un programa consiste en escribir una lista de instrucciones que el ordenador ejecutará, una tras otra.

2 Cómo se escribe un programa

Los programas se escriben en un lenguaje de programación. Existe una infinidad de lenguajes de programación. Algunos lenguajes son de propósito general, y otros son más adecuados para tareas especializadas (desarrollo de aplicaciones en la web, en el escritorio, en un móvil, cálculo científico).

El ordenador es capaz de entender un lenguaje denominado lenguaje máquina o lenguaje ensamblador. En los primeros tiempos de la Informática, los programadores escribían código directamente en este lenguaje máquina. Este tipo de lenguajes eran muy complejos de usar por parte de los programadores, pero muy sencillo de ejecutar por parte del ordenador. Por este motivo, los programas escritos en lenguaje máquina se suelen ejecutar con rapidez y sin requerir muchos recursos.

Conforme la tecnología de los ordenadores fue avanzando, también cambiaron los lenguajes de programación. Se crearon lenguajes de alto nivel. Un lenguaje de alto nivel es más fácil de entender por parte de los programadores, pero requiere ser traducido a lenguaje máquina para poder ser ejecutado por el ordenador. Por este motivo, los programas escritos en lenguajes de alto nivel suelen ser más lentos que los programas escritos en lenguajes de bajo nivel. Aunque el tiempo de desarrollo requerido para escribir programas en lenguajes de alto nivel es mucho menor, ya que el código es mucho más sencillo de entender. La siguiente tabla muestra un resumen de ventajas e inconvenientes de los lenguajes de alto y bajo nivel:

Lenguajes de alto nivel Lenguajes de bajo nivel
Ventajas Fáciles de entender y usar por los programadores. Tiempo de desarrollo corto. Fáciles de ejecutar por el ordenador. Tiempo de ejecución rápido.
Inconvenientes Requieren traducción a un lenguaje de bajo nivel. Tiempo de ejecución lento. Difíciles de entender por los programadores. Provocan problemas de mantenimiento de software. Tiempo de desarrollo largo.

En la práctica se suelen emplear mucho más los lenguajes de alto nivel. Pero esto requiere usar un programa que haga de traductor a lenguaje máquina. Existen dos clases de estos programas traductores:

  • Compiladores
  • Intérpretes

Un compilador es un programa que toma el código fuente escrito en un lenguaje de alto nivel, y lo transforma en un archivo escrito en lenguaje de bajo nivel, que es ejecutable directamente por el sistema operativo. Una vez generado el programa por parte del compilador, ya no se necesita usar el compilador cada vez que se quiera ejecutar el programa, se puede ejecutar directamente. Ésta es la principal ventaja de los compiladores.

Un intérprete es un programa que lee el código fuente escrito en un lenguaje de alto nivel, y lo ejecuta línea a línea, directamente. Es decir, no genera ningún programa nuevo escrito en lenguaje máquina. Por este motivo, es necesario usar el intérprete cada vez que queramos ejecutar el programa de alto nivel. A pesar de esta desventaja respecto a los compiladores, es más fácil depurar y revisar la ejecución de un programa con un intérprete que con un compilador.

3 Estructura y ejemplo de un programa

Aunque existen muchas metodologías de programación, la mayoría de programas los podemos dividir en tres partes:

  • Entrada de datos
  • Algoritmo
  • Salida de datos

Si intentamos estructurar nuestros programas de esta manera, será más sencillo escribirlos. Por ejemplo, el siguiente programa está estructurado de esta manera. El programa calcula el área de un círculo. La entrada de datos consiste en pedir al usuario el radio del círculo (línea 4). El algoritmo es muy sencillo en este caso, calcula el área a partir del radio (línea 7). Por último, la salida de datos muestra el resultado (línea 10).

 1 % Calcula el área de un círculo
 2 
 3 % Entrada de datos
 4 r = input('Introduce el radio del círculo: ');
 5 
 6 % Algoritmo
 7 A = pi*r^2;
 8 
 9 % Salida de datos
10 fprintf('El área del círculo de radio %f es %f\n', r, A);


Para que sea más sencillo de entender, se han añadido comentarios (líneas 1, 3, 6 y 9). Los comentarios no se ejecutan, se añaden para que cualquier persona que lea el código entienda mejor qué hace el programa.

4 Metodología de diseño de programas

Cuando un programa es muy complejo, para que sea más fácil de escribir es mejor dividirlo en tareas más pequeñas, en forma de funciones. Cada una de estas funciones se estructura en entrada-algoritmo-salida, de modo que las entradas de la siguiente tarea sea la salida de la tarea anterior. La entrada de una función son los argumentos de entrada. La salida la forman los argumentos de salida. El algoritmo está formado por el cuerpo de la función.

Para facilitar la división del programa en tareas, es mejor escribir primero como comentarios los pasos que va a realizar el programa, escritos en lenguaje natural. Luego vamos intentando resolver cada una de las tareas por separado, sustituyendo cada comentario por el código correspondiente. Esta estrategia permite reducir programas grandes y complejos a un conjunto de programas pequeños, que son más fáciles de implementar.

5 Artículos relacionados