Síguenos en Facebook

¿Qué es la programación de software?

Que-es-la-programacion-de-software-1.jpg iStockphoto/ThinkStock

En cualquier ordenador podemos distinguir dos elementos esenciales: el hardware y el software. El hardware es la parte física, los chips y los cables (la máquina) mientras que el software son los programas que se ejecutan sobre esta máquina.

En este post nos dedicamos a dar unas pinceladas de este segundo elemento, el software, y más en concreto en cómo se confeccionan los programas.

Programación de software

Un programa informático es el resultado final de un proceso que empieza con el planteamiento de un problema. Un programa es un conjunto de instrucciones escritas con un lenguaje de programación y que serán ejecutadas en un ordenador.

Cada máquina reconoce un lenguaje propio, denominado lenguaje máquina o ensamblador, que consta de unas instrucciones muy a bajo nivel, en las cuales se accede directamente a los elementos físicos de la máquina como por ejemplo los registros.

Por ejemplo son del tipo: copia lo que hay en una posición concreta de la memoria a un registro concreto o suma lo que hay en dos registros o copia lo que hay en un registro a otra posición de memoria. La unidad de control (a la unidad central de proceso o CPU) es quien es capaz de entender estas instrucciones sencillas y controlar su ejecución. Como ya sabréis, cada máquina tiene una configuración física diferente, y también un lenguaje ensamblador diferente. Por ejemplo, es diferente el ensamblador de un PC que el de un Mac.

Que-es-la-programacion-de-software-8.jpg Hemera/ThinkStock

Etapas de la programación

En la primera etapa de la informática todos los programas se hacían utilizando el código máquina, pero aparte de que es muy complicado de programar y muy difícil de leer, una vez tenemos el programa sólo lo podemos ejecutar en un tipo de máquina concreto. Si cambiamos de máquina perdemos todos nuestros programas.

Que-es-la-programacion-de-software-7.jpg Stockbyte/ThinkStock

Es por estos factores que aparecen los lenguajes de programación de alto nivel, donde se busca por una parte un lenguaje más fácil de escribir y leer, y por la otra la portabilidad, es decir que podamos traer los programas de una máquina a otra. Realmente lo que realmente la máquina ejecuta continúa siendo código máquina, pero el programador escribe en otro lenguaje. Hace falta, por lo tanto, una etapa de traducción intermedia. Esta traducción puede ser por dos mecanismos diferentes: la compilación y la interpretación:

- Compilación: antes de ejecutar nuestro programa, lo compilamos. Lo que denominamos compilador (que es otro programa) primero reconoce si nuestro código está escrito siguiendo las reglas del lenguaje y si no hay errores lo traduce a código máquina. Lo que posteriormente se ejecuta es el código máquina que se ha generado.

- Interpretación: el código se va ejecutando instrucción a instrucción, y una a una se van traduciendo a código máquina. Quien lo hace es el intérprete (también otro programa).

Que-es-la-programacion-de-software-6.jpg iStockphoto/ThinkStock

Hay un tercer mecanismo que es el de Java, que utiliza una solución mixta, primero con un compilador que no genera código máquina para la máquina física sino para lo que se llama una máquina virtual (la famosa máquina virtual de Java). A este código de máquina virtual se le llama byte-code. La máquina virtual en realidad es un interprete que después va ejecutando (traduciendo a código máquina real) el byte-code instrucción a instrucción.

Fases intermedias de la programación

Pero entre el planteamiento del problema y el programa es necesaria otra fase, la de concepción de un algoritmo. Un algoritmo es también la resolución del problema como una secuencia de acciones, pero no destinado a ser ejecutado en un ordenador sino en lo que podríamos denominar máquina abstracta o ideal.

Un algoritmo está escrito en lenguaje humano, como el castellano (a diferencia del programa que está escrito en un lenguaje de programación) y está destinado a que lo entienda el programador que después lo traducirá a cualquier lenguaje de programación concreto como Java, C++, Python, Visual Basic.

De esta forma, el algoritmo será la lista de las acciones necesarias por que se resuelva el problema inicial, en nuestro caso escritas en castellano. La elección del lenguaje en que codificamos el algoritmo dependerá de factores muy variados (y no siempre técnicos), como pueden ser la facilidad por aprenderlo, facilidad por leerlo, eficiencia, disponibilidad para la plataforma donde se ha de ejecutar, el precio y más.

Que-es-la-programacion-de-software-5.jpg iStockphoto/Thinkstock

¿Por qué pasamos por esta fase intermedia? Porque así la persona que resuelve el problema no tiene porque saber nada sobre el lenguaje que se utilizará después para hacer la codificación al programa, y quizás ni siquiera sepa cual será este lenguaje.

Los algoritmos deben representar dos cosas: las acciones que hace falta hacer y los objetos sobre los cuales se hacen estas acciones, es decir los objetos que el algoritmo manipula. Para hacer esto de una manera que lo pueda entender cualquier programador se hace utilizando lo que se llama pseudo-código, que no es más que, en nuestro caso, castellano con unas reglas sintácticas concretas para representar las acciones y los objetos.

Que-es-la-programacion-de-software-4.jpg Ingram Publishing/ThinkStock

Resumiendo, los programas están escritos en un lenguaje de programación concreto y los algoritmos en pseudo-código, un castellano modificado con ciertas reglas sintácticas.

Ejemplo de programación

Problema: calcular la media de dos números con una calculadora tradicional

Objetos: una calculadora (no científica)

Solución:

  1. Poner en marcha la calculadora pulsando el botón ON
  2. Introducir el primer número
  3. Pulsar la tecla "+"
  4. Introducir el segundo número
  5. Pulsar la tecla "/"
  6. Teclear el número "2"
  7. Pulsar la tecla "="

Esta secuencia de siete acciones nos describe como debemos hacer para resolver un determinado problema. Como podemos ver es muy similar a una receta de cocina. A un algoritmo debemos decirle los ingredientes y enseres que necesitamos (los objetos de qué hablábamos) y como se preparan (las acciones).

Que-es-la-programacion-de-software-3.jpg iStockphoto/ThinkStock

Espero que esta explicación haya sido útil y te haya enseñado a entender un poco más sobre cómo funciona un programa y los pasos necesarios para programar. Te invito a compartir el artículo y expresarte en los comentarios.

Artículos recomendados

12 Comentarios

muy
chevere y educativo

Mar, 2009-03-10 16:29

Que buen aporte no tenia mucha idea sobre esto. se les agradece por este buen aporte aporte

Mié, 2009-07-22 20:28

me parece que uno aprende mucho

Mié, 2010-02-10 19:26

me parece muy interesante ya q voy a comenzar a ejecutar un curso de tal tema.... me parece chevere...

Vie, 2010-08-20 12:09

Me gusto mucho este articulo esta bien explicito...............

Mié, 2010-12-01 02:03

Chevere, me gustó, porque la información está dada en un lenguaje sencillo y fácil de entender a las personas que no tenemos conocimientos a cerca de tema y no utilizan vocabulario con palabras técnicas difíciles de entender.

Sáb, 2012-01-07 08:43

Muy bueno.

Mié, 2012-08-29 09:33

Muy interesante sobre la programación... me gustaría ver por este medio vídeos tutoriales para principiante sobre programación gracias.

Sáb, 2012-12-15 10:17

Que importante este servicio y la forma clara de expresión que cualquiera puede comprender.

Dom, 2013-01-13 16:10

Me pareció muy buena la explicación gracias.

Mié, 2013-03-20 22:24

Tengo 45 años y empecé a estudiar de nuevo, gracias por explicar esto tan claro, gracias a ustedes entendí mucho.

Jue, 2013-04-04 17:13

yo soy estudiante de la universidad y si es cierto lo que dice esta pagina

Dom, 2013-07-21 20:31
El contenido de este campo se mantiene privado y no se mostrará públicamente.