Está en la página 1de 4

Programacin

Commons-emblem-question book yellow.svg


Este artculo posee referencias, pero necesita ms para complementar su verificabili
dad.
Puedes colaborar agregando referencias a fuentes fiables como se indica aqu. El m
aterial sin fuentes fiables podra ser cuestionado y eliminado.
Para otros usos de este trmino, vase Programacin (desambiguacin).
La programacin informtica o programacin algortmica, acortada como programacin, es el
proceso de disear, codificar, depurar y mantener el cdigo fuente de programas comp
utacionales. El cdigo fuente es escrito en un lenguaje de programacin. El propsito
de la programacin es crear programas que exhiban un comportamiento deseado. El pr
oceso de escribir cdigo requiere frecuentemente conocimientos en varias reas disti
ntas, adems del dominio del lenguaje a utilizar, algoritmos especializados y lgica
formal. Programar no involucra necesariamente otras tareas tales como el anlisis
y diseo de la aplicacin (pero s el diseo del cdigo), aunque s suelen estar fusionadas
en el desarrollo de pequeas aplicaciones.
Del proceso de programacin surge lo que comnmente se conoce como software (conjunt
o de programas), aunque estrictamente este ltimo abarca mucho ms que solo la progr
amacin.
ndice [ocultar]
1
Historia
2
Lxico y programacin
3
Programas y algoritmos
4
Compilacin
5
Programacin e ingeniera del software
6
Referencias histricas
7
Objetivos de la programacin
8
Ciclo de vida del software
9
Vase tambin
10
Referencias
11
Enlaces externos
Historia[editar]
Pauscal lenguaje de programacin.png
Para crear un programa, y que la computadora lo interprete y ejecute las instruc
ciones escritas en l, debe escribirse en un lenguaje de programacin. En sus inicio
s las computadoras interpretaban solo instrucciones en un lenguaje especfico, del
ms bajo nivel, conocido como cdigo mquina, siendo ste excesivamente complicado para
programar. De hecho solo consiste en cadenas de nmeros 1 y 0 (sistema binario).
Para facilitar el trabajo de programacin, los primeros cientficos, que trabajaban
en el rea, decidieron reemplazar las instrucciones, secuencias de unos y ceros, p
or palabras o abreviaturas provenientes del ingls; las codificaron y crearon as un
lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Po
r ejemplo, para sumar se podra usar la letra A de la palabra inglesa add (sumar).
En realidad escribir en lenguaje ensamblador es bsicamente lo mismo que hacerlo
en lenguaje mquina, pero las letras y palabras son bastante ms fciles de recordar y
entender que secuencias de nmeros binarios. A medida que la complejidad de las t
areas que realizaban las computadoras aumentaba, se hizo necesario disponer de u
n mtodo sencillo para programar. Entonces, se crearon los lenguajes de alto nivel
. Mientras que una tarea tan trivial como multiplicar dos nmeros puede necesitar
un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto niv
el bastar con solo una. Una vez que se termina de escribir un programa, sea en en
samblador o en algunos lenguajes de alto nivel, es necesario compilarlo, es deci
r, traducirlo completo a lenguaje mquina.1 Eventualmente ser necesaria otra fase d
enominada comnmente link o enlace, durante la cual se anexan al cdigo, generado du
rante la compilacin, los recursos necesarios de alguna biblioteca. En algunos len
guajes de programacin, puede no ser requerido el proceso de compilacin y enlace, y
a que pueden trabajar en modo intrprete. Esta modalidad de trabajo es equivalente
pero se realiza instruccin por instruccin, a medida que es ejecutado el programa.

Lxico y programacin[editar]
La programacin se rige por reglas y un conjunto ms o menos reducido de rdenes, expr
esiones, instrucciones y comandos que tienden a asemejarse a una lengua natural
acotada (en ingls); y que adems tienen la particularidad de una reducida ambigedad.
Cuanto menos ambiguo es un lenguaje de programacin, se dice, es ms potente. Bajo
esta premisa, y en el extremo, el lenguaje ms potente existente es el binario, co
n ambigedad nula (lo cual lleva a pensar as del lenguaje ensamblador).
En los lenguajes de programacin de alto nivel se distinguen diversos elementos en
tre los que se incluyen el lxico propio del lenguaje y las reglas semnticas y sintc
ticas.
Programas y algoritmos[editar]
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 programacin concreto) uno o ms algoritmos. Un algoritmo p
uede expresarse de distintas maneras: en forma grfica, como un diagrama de flujo,
en forma de cdigo como en pseudocdigo o un lenguaje de programacin, en forma expli
cativa, etc.
Los programas suelen subdividirse en partes menores, llamadas mdulos, de modo que
la complejidad algortmica de cada una de las partes sea menor que la del program
a completo, lo cual ayuda al desarrollo del programa. Esta es una prctica muy uti
lizada y se conoce como "refino progresivo".
Segn Niklaus Wirth, un programa est formado por los algoritmos y la estructura de
datos.
Se han propuesto diversas tcnicas de programacin cuyo objetivo es mejorar tanto el
proceso de creacin de software como su mantenimiento. Entre ellas, se pueden men
cionar las siguientes:
Programacin declarativa
Programacin estructurada
Programacin modular
Programacin orientada a objetos
Compilacin[editar]
El programa escrito en un lenguaje de programacin de alto nivel (fcilmente compren
sible por el programador) es llamado programa fuente y no se puede ejecutar dire
ctamente en una computadora. La opcin ms comn es compilar el programa obteniendo un
mdulo objeto, aunque tambin puede ejecutarse en forma ms directa a travs de un intrp
rete informtico.
El cdigo fuente del programa se debe someter a un proceso de traduccin para conver
tirlo a lenguaje mquina o bien a un cdigo intermedio, generando as un mdulo denomina
do "objeto". A este proceso se le llama compilacin.
Habitualmente la creacin de un programa ejecutable (un tpico.exe para Microsoft Wi
ndows o DOS) conlleva dos pasos. El primer paso se llama compilacin (propiamente
dicho) y traduce el cdigo fuente escrito en un lenguaje de programacin almacenado
en un archivo de texto a cdigo en bajo nivel (normalmente en cdigo objeto, no dire
ctamente a lenguaje mquina). El segundo paso se llama enlazado en el cual se enla
za el cdigo de bajo nivel generado de todos los ficheros y subprogramas que se ha
n mandado compilar y se aade el cdigo de las funciones que hay en las bibliotecas
del compilador para que el ejecutable pueda comunicarse directamente con el sist
ema operativo, traduciendo as finalmente el cdigo objeto a cdigo mquina, y generando
un mdulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fas

e de compilacin en archivos objetos (un tpico .o para Unix, .obj para MS-Windows,
DOS); para enlazarlos en fases posteriores, o crear directamente el ejecutable;
con lo que la fase de compilacin puede almacenarse solo de forma temporal. Un pro
grama podra tener partes escritas en varios lenguajes, por ejemplo, Java, C, C++
y ensamblador, que se podran compilar de forma independiente y luego enlazar junt
as para formar un nico mdulo ejecutable.
Programacin e ingeniera del software[editar]
Artculo principal: Ingeniera del software
Existe una tendencia a identificar el proceso de creacin de un programa informtico
con la programacin, que es cierta cuando se trata de programas pequeos para uso p
ersonal, y que dista de la realidad cuando se trata de grandes proyectos.
El proceso de creacin de software, desde el punto de vista de la ingeniera, incluy
e mnimamente los siguientes pasos:
Reconocer la necesidad de un programa para solucionar un problema o identificar
la posibilidad de automatizacin 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 anlisis de los requisitos del programa. Debe quedar claro qu tareas de
be realizar el programa. Las pruebas que comprueben la validez del programa se p
ueden especificar en esta fase.
Disear la arquitectura del programa. Se debe descomponer el programa en partes de
complejidad abordable.
Implementar el programa. Consiste en realizar un diseo detallado, especificando c
ompletamente todo el funcionamiento del programa, tras lo cual la codificacin (pr
ogramacin propiamente dicha) debera resultar inmediata.
Probar el programa. Comprobar que pasan pruebas que se han definido en el anlisis
de requisitos.
Implantar (instalar) el programa. Consiste en poner el programa en funcionamient
o junto con los componentes que pueda necesitar (bases de datos, redes de comuni
caciones, etc.).
La ingeniera del software se centra en los pasos de planificacin y diseo del progra
ma, mientras que antiguamente (programacin artesanal) la realizacin de un programa
consista casi nicamente en escribir el cdigo, bajo solo el conocimiento de los req
uisitos y con una modesta fase de anlisis y diseo.
Referencias histricas[editar]
El trabajo de Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron, realiz
para la mquina de Babbage le hizo ganarse el ttulo de primera programadora de comp
utadoras del mundo, aunque Babbage nunca complet la construccin de la mquina. El no
mbre del lenguaje de programacin Ada fue escogido como homenaje a esta programado
ra.
Objetivos de la programacin[editar]
La programacin debe perseguir la obtencin de programas de calidad. Para ello se es
tablece una serie de factores que determinan la calidad de un programa. Algunos
de los factores de calidad ms importantes son los siguientes:
Correctitud. Un programa es correcto si hace lo que debe hacer tal y como se est
ableci en las fases previas a su desarrollo. Para determinar si un programa hace
lo que debe, es muy importante especificar claramente qu debe hacer el programa a
ntes de su desarrollo y, una vez acabado, compararlo con lo que realmente hace.
Claridad. Es muy importante que el programa sea lo ms claro y legible posible, pa
ra facilitar tanto su desarrollo como su posterior mantenimiento. Al elaborar un
programa se debe intentar que su estructura sea sencilla y coherente, as como cu
idar el estilo de programacin. De esta forma se ve facilitado el trabajo del prog
ramador, tanto en la fase de creacin como en las fases posteriores de correccin de
errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas inc

luso por otro programador, con lo cual la claridad es an ms necesaria para que otr
os puedan continuar el trabajo fcilmente. Algunos programadores llegan incluso a
utilizar Arte ASCII para delimitar secciones de cdigo; una prctica comn es realizar
aclaraciones en el cdigo fuente utilizando lneas de comentarios. Contrariamente,
algunos por diversin o para impedirle un anlisis cmodo a otros programadores, recur
ren al uso de cdigo ofuscado.
Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fu
e creado (es decir, que sea correcto), lo haga gestionando de la mejor forma pos
ible los recursos que utiliza. Normalmente, al hablar de eficiencia de un progra
ma, se suele hacer referencia al tiempo que tarda en realizar la tarea para la q
ue ha sido creado y a la cantidad de memoria que necesita, pero hay otros recurs
os que tambin pueden ser de consideracin para mejorar la eficiencia de un programa
, dependiendo de su naturaleza (espacio en disco que utiliza, trfico en la red qu
e genera, etc.).
Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecuta
rse en una plataforma, ya sea hardware o software, diferente a aqulla en la que s
e desarroll. La portabilidad es una caracterstica muy deseable para un programa, y
a que permite, por ejemplo, a un programa que se ha elaborado para el sistema GN
U/Linux ejecutarse tambin en la familia de sistemas operativos Windows. Esto perm
ite que el programa pueda llegar a ms usuarios ms fcilmente.
Ciclo de vida del software[editar]
Artculo principal: Proceso para el desarrollo de software
El trmino ciclo de vida del software describe el desarrollo de software, desde la
fase inicial hasta la fase final, incluyendo su estado funcional. El propsito es
definir las distintas fases intermedias que se requieren para validar el desarr
ollo de la aplicacin, es decir, para garantizar que el software cumpla los requis
itos para la aplicacin y verificacin de los procedimientos de desarrollo: se asegu
ra que los mtodos utilizados son apropiados. Estos mtodos se originan en el hecho
de que es muy costoso rectificar los errores que se detectan tarde dentro de la
fase de implementacin (programacin propiamente dicha), o peor an, durante la fase f
uncional. El modelo de ciclo de vida permite que los errores se detecten lo ante
s posible y por lo tanto, permite a los desarrolladores concentrarse en la calid
ad del software, en los plazos de implementacin y en los costos asociados. El cic
lo de vida bsico de un software consta de, al menos, los siguientes procedimiento
s:
Definicin de objetivos: definir el resultado del proyecto y su papel en la estrat
egia global.
Anlisis de los requisitos y su viabilidad: recopilar, examinar y formular los req
uisitos del cliente y examinar cualquier restriccin que se pueda aplicar.
Diseo general: requisitos generales de la arquitectura de la aplicacin.
Diseo en detalle: definicin precisa de cada subconjunto de la aplicacin.
Programacin (programacin e implementacin): es la implementacin en un lenguaje de pro
gramacin para crear las funciones definidas durante la etapa de diseo.
Prueba de unidad: prueba individual de cada subconjunto de la aplicacin para gara
ntizar que se implementaron de acuerdo con las especificaciones.
Integracin: para garantizar que los diferentes mdulos y subprogramas se integren c
on la aplicacin. ste es el propsito de la prueba de integracin que debe estar cuidad
osamente documentada.
Prueba beta (o validacin), para garantizar que el software cumple con las especif
icaciones originales.
Documentacin: se documenta con toda la informacin necesaria, sea funcional final p
ara los usuarios del software (manual del usuario), y de desarrollo para futuras
adaptaciones, ampliaciones y correcciones.
Mantenimiento: para todos los procedimientos correctivos (mantenimiento correcti
vo) y las actualizaciones secundarias del software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida
de una aplicacin dependen del tipo de modelo de ciclo de vida acordado entre el c
liente y el equipo de desarrolladores.

También podría gustarte