Se conoce como programación de computadores a la implementación de un algoritmo en un determinado lenguaje de programación, conformando un programa.
Mientras que un algoritmo se ejecuta en una máquina abstracta que no
tiene limitaciones de memoria o tiempo, un programa se ejecuta en una
máquina real, que sí tiene esas limitaciones. El lenguaje de
programación puede ser de alto nivel, medio nivel o bajo nivel, en
función del grado de abstracción.
- 1 Programas y algoritmos
- 2 Compilación
- 3 Programación e ingeniería del software
- 4 Objetivos de la programación
|
Programas y algoritmos
Un algoritmo
es una secuencia no ambigua, finita y ordenada de instrucciones que han
de seguirse para resolver un problema. Un programa normalmente
implementa (traduce a un lenguaje de programación concreto) un
algoritmo. Nótese que es la secuencia de instrucciones en sí la que
debe ser finita, no el número de pasos realizados como la ejecución de
ellas.
Los programas suelen subdividirse en partes menores (módulos), de
modo que la complejidad algorítmica de cada una de las partes sea menor
que la del programa completo, lo cual ayuda al desarrollo del programa.
Según Niklaus Wirth un programa está formado por algoritmos y estructura de datos.
Se han propuesto diversas técnicas de programación, cuyo objetivo es
mejorar tanto el proceso de creación de software como su mantenimiento.
Entre ellas se pueden mencionar las programaciones lineal, estructurada, modular y orientada a objetos.
Compilación
El programa escrito en un lenguaje de programación
(comprensible por el ser humano, aunque se suelen corresponder con
lenguajes formales descritos por gramáticas independientes del
contexto) no es inmediatamente ejecutado en una computadora. La opción
más común es compilar el programa, aunque también puede ser ejecutado
mediante un intérprete informático
El código fuente del programa se debe someter a un proceso de transformación para convertirse en lenguaje máquina, interpretable por el procesador. A este proceso se le llama compilación.
Normalmente la creación de un programa ejecutable
(un típico.exe para Microsoft Windows) conlleva dos pasos. El primer
paso se llama compilación (propiamente dicho) y traduce el código
fuente escrito en un lenguaje de programación
almacenado en un archivo a código en bajo nivel, (normalmente en código
objeto no directamente al lenguaje máquina). El segundo paso se llama enlazado (del inglés link o linker)
se junta el código de bajo nivel generado de todos los ficheros que se
han mandado compilar y se añade el código de las funciones que hay en
las bibliotecas del compilador para que el ejecutable pueda comunicarse
con el sistemas operativo y traduce el código objeto a código máquina.
Estos dos pasos se pueden mandar hacer por separado, almacenando el
resultado de la fase de compilación en archivos objetos (un típico.obj
para Microsoft Windows,.o para Unix), para enlazarlos posteriormente, o
crear directamente el ejecutable con lo que la fase de compilación se
almacena sólo temporalmente. Un programa podría tener partes escritas
en varios lenguajes (generalmente C, C++ y Asm), que se podrían
compilar de forma independiente y enlazar juntas para formar un único ejecutable.
Programación e ingeniería del software
Existe una tendencia a identificar el proceso de creación de un
programa informático con la programación, que es cierta cuando se trata
de programas pequeños para uso personal, y que dista de la realidad
cuando se trata de grandes proyectos.
El proceso de creación de software desde el punto de vista de la Ingeniería tiene los siguientes pasos:
- Reconocer la necesidad de un programa para solucionar un problema ó identificar la posibilidad de automatización de una tarea.
- Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.
- Realizar el análisis de los requisitos del programa. Debe quedar
claro cómo debe realizar el programa las cosas que debe hacer. Las
pruebas que comprueben la validez del programa se pueden especificar en
esta fase.
- Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.
- Implementar el programa. Consiste en realizar un diseño detallado,
especificando completamente todo el funcionamiento del programa, tras
lo cual la codificación debería resultar inmediata.
- Implantar (instalar) el programa. Consiste en poner el programa en
funcionamiento junto con los componentes que pueda necesitar (bases de
datos, redes de comunicaciones, etc.)
La Ingeniería del Software se centra en los pasos de planificación y
diseño del programa, mientras que antiguamente (programación artesanal)
la realización de un programa consistía únicamente en escribir el
código.
Objetivos de la programación
La programación de ordenadores debe perseguir tres objetivos fundamentales:
- Corrección: un programa es correcto si hace lo que debe hacer. Para
determinar si un programa hace lo que debe es muy importante
especificar claramente qué debe hacer el programa antes de
desarrollarlo y una vez acabado compararlo con lo que realmente hace.
- Claridad: es muy importante que el programa sea lo más claro y
legible posible para mejorar el mantenimiento del software. Cuando se
acaba de escribir el código del programa, se deben buscar errores y
corregirlos. Más concretamente, cuando el programa está concluido, es
necesario hacerle ampliaciones o modificaciones, según la demanda de
los usuarios, esta labor puede ser llevada acabo por el mismo programador que implementó el programa o por otros.
- Eficiencia: debe consumir la menor cantidad de recursos posible.
Normalmente al hablar de eficiencia se suele hacer referencia al
consumo de tiempo y/o memoria.
La eficiencia y la claridad de un programa pueden ser objetivos
contrapuestos: se puede conseguir mayor claridad sacrificando parte de
la eficiencia o viceversa. Pero hay que tener en cuenta que el tiempo
del programador es caro, y que hoy en día el precio de los ordenadores
es razonable y cada vez son más baratos.
Fuente original: http://es.wikipedia.org/wiki/Programaci%C3%B3n
|