Sei sulla pagina 1di 2

Que es la programacin de software?

En cualquier ordenador podemos distinguir dos elementos esenciales: el hardware y el software. El hardware es la parte fsica, los chips y los cables (la mquina) mientras que el software son los programas que se ejecutan sobre esta mquina. En este articulo nos dedicamos a dar unas pinceladas de este segundo elemento, el software, y ms en concreto en como se confeccionan los programas. Un programa informtico 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 programacin y que sern ejecutadas en un ordenador. Cada mquina reconoce un lenguaje propio, denominado lenguaje mquina o ensamblador, que consta de unas instrucciones muy a bajo nivel, en las cuales se accede directamente a los elementos fsicos de la mquina como por ejemplo los registros. Por ejemplo son del tipo: copia lo que hay en una posicin 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 posicin 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 ejecucin. Como ya sabris, cada mquina tiene una configuracin fsica diferente, y tambin un lenguaje ensamblador diferente. Por ejemplo, es diferente el ensamblador de un PC que el de un Mac. En la primera etapa de la informtica todos los programas se hacan utilizando el cdigo mquina, pero aparte de que es muy complicado de programar y muy difcil de leer, una vez tenemos el programa slo lo podemos ejecutar en un tipo de mquina concreto. Si cambiamos de mquina perdemos todos nuestros programas. Es por estos factores que aparecen los lenguajes de programacin de alto nivel, donde se busca por una parte un lenguaje ms fcil de escribir y leer, y por la otra la portabilidad, es decir que podamos traer los programas de una mquina a otra. Realmente lo que realmente la mquina ejecuta contina siendo cdigo mquina, pero el programador escribe en otro lenguaje. Hace falta, por lo tanto, una etapa de traduccin intermedia. Esta traduccin puede ser por dos mecanismos diferentes: la compilacin y la interpretacin: - Compilacin: antes de ejecutar nuestro programa, lo compilamos. Lo que denominamos compilador (que es otro programa) primero reconoce si nuestro cdigo est escrito siguiendo las reglas del lenguaje y si no hay errores lo traduce a cdigo mquina. Lo que posteriormente se ejecuta es el cdigo mquina que se ha generado. - Interpretacin: el cdigo se va ejecutando instruccin a instruccin, y una a una se van traduciendo a cdigo mquina. Quien lo hace es el intrprete (tambin otro programa). Hay un tercer mecanismo que es el de Java, que utiliza una solucin mixta, primero con un compilador que no genera cdigo mquina para la mquina fsica sino para lo que se llama una mquina virtual (la famosa mquina virtual de Java). A este cdigo de mquina virtual se le llama byte-code. La mquina virtual en realidad es un interprete que despus va ejecutando (traduciendo a cdigo mquina real) el byte-code instruccin a instruccin. Pero entre el planteamiento del problema y el programa es

necesaria otra fase, la de concepcin de un algoritmo. Un algoritmo es tambin la resolucin del problema como una secuencia de acciones, pero no destinado a ser ejecutado en un ordenador sino en lo que podramos denominar mquina abstracta o ideal. Un algoritmo est escrito en lenguaje humano, como el castellano (a diferencia del programa que est escrito en un lenguaje de programacin) y est destinado a que lo entienda el programador que despus lo traducir a cualquier lenguaje de programacin 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 eleccin del lenguaje en que codificamos el algoritmo depender de factores muy variados (y no siempre tcnicos), cmo pueden ser la facilidad por aprenderlo, facilidad por leerlo, eficiencia, disponibilidad para la plataforma dnde se ha de ejecutar, el precio, Porque pasamos por esta fase intermedia? Porque as la persona que resuelve el problema no tiene porque saber nada lenguaje que se utilizar despus por hacer la codificacin a programa, quizs que 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-cdigo, que no es ms que, en nuestro caso, castellano con unas reglas sintcticas concretas para representar las acciones y los objetos. Resumiendo, los programas estn escritos en un lenguaje de programacin concreto y los algoritmos en pseudo-cdigo, un castellano modificado con ciertas reglas sintcticas. Por ejemplo Problema: calcular la media de dos nmeros con una calculadora tradicional Objetos: una calculadora (no cientfica) Solucin: 1. Poner en marcha la calculadora pulsando el botn ON 2. Introducir el primer nmero 3. Pulsar la tecla + 4. Introducir el segundo nmero 5. Pulsar la tecla / 6. Teclear el nmero 2 7. Pulsar la tecla = Esta secuencia de siete acciones nos describe como debemos hacer para resolver un determinado problema. Cmo 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 hablbamos) y como se preparan (las acciones).

Potrebbero piacerti anche