You are on page 1of 4

Programacin Saltar a: navegacin, bsqueda Para otros usos de la palabra, vase Programacin (msica).

La Programacin es el proceso de disear, codificar, depurar y mantener el cdigo fuen te de programas computacionales. El cdigo fuente es escrito en un lenguaje de pro gramacin. El propsito de la programacin es crear programas que exhiban un comportam iento deseado. El proceso de escribir cdigo requiere frecuentemente conocimientos en varias reas distintas, adems del dominio del lenguaje a utilizar, algoritmos e specializados 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 su len estar fusionadas en el desarrollo de pequeas aplicaciones. Contenido 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 Referencias 9 Vase tambin 10 Enlaces externos Historia Para crear un programa, y que la computadora interprete y ejecute las instruccio nes escritas en l, debe usarse un Lenguaje de programacin. En sus inicios las computadoras interpretaban slo instrucciones en un lenguaje es pecfico, del ms bajo nivel, conocido como cdigo mquina, siendo ste excesivamente comp licado para programar. De hecho slo consiste en cadenas de nmeros 1 y 0 (Sistema b inario). Para facilitar el trabajo de programacin, los primeros cientficos que trabajaban e n el rea decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del ingls; codificndolas as y creando un lenguaje d e mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escr ibir 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 sec uencias de nmeros binarios. A medida que la complejidad de las tareas que realizaban las computadoras aument aba, se hizo necesario disponer de un mtodo sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como mu ltiplicar dos nmeros puede necesitar un conjunto de instrucciones en lenguaje ens amblador, en un lenguaje de alto nivel bastar con solo una. Una vez que se termina de escribir un programa, sea en ensamblador o en un lengu aje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje mquin a.1 Lxico y programacin 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 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 Programacin Programacin Programacin Compilacin El programa escrito en un lenguaje de programacin (fcilmente comprensible por el p rogramador) es llamado programa fuente y no se puede ejecutar directamente en un a 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 intrprete informtico . El cdigo fuente del programa se debe someter a un proceso de traduccin para conver tirlo en lenguaje mquina, cdigo ste directamente ejecutable por el procesador. A es te proceso se le llama compilacin. Normalmente la creacin de un programa ejecutable (un tpico.exe para Microsoft Wind ows o DOS) conlleva dos pasos. El primer paso se llama compilacin (propiamente di cho) y traduce el cdigo fuente escrito en un lenguaje de programacin almacenado en un archivo a cdigo en bajo nivel (normalmente en cdigo objeto, no directamente a lenguaje mquina). El segundo paso se llama enlazado en el cual se enlaza el cdigo de bajo nivel generado de todos los ficheros y subprogramas que se han mandado c ompilar y se aade el cdigo de las funciones que hay en las bibliotecas del compila dor para que el ejecutable pueda comunicarse directamente con el sistema operati vo, traduciendo as finalmente el cdigo objeto a cdigo mquina, y generando un mdulo ej ecutable. Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fas e de compilacin en archivos objetos (un tpico.obj para Microsoft Windows, DOS o pa ra Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutab le; con lo que la fase de compilacin se almacena slo temporalmente. Un programa po dra tener partes escritas en varios lenguajes (por ejemplo C, C++ y ensamblador), estructurada modular orientada a objetos (POO) declarativa

que se podran compilar de forma independiente y luego enlazar juntas para formar un nico mdulo ejecutable. Programacin e 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 los siguientes pasos: Reconocer la necesidad de un programa para solucionar un problema o identifi car la posibilidad de automatizacin de una tarea. Recoger los requisitos del programa. Debe quedar claro qu es lo que debe hace r el programa y para qu se necesita. Realizar el anlisis de los requisitos del programa. Debe quedar claro cmo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la va lidez del programa se pueden especificar en esta fase. Disear la arquitectura del programa. Se debe descomponer el programa en parte s de complejidad abordable. Implementar el programa. Consiste en realizar un diseo detallado, especifican do completamente todo el funcionamiento del programa, tras lo cual la codificacin (programacin propiamente dicha) debera resultar inmediata. Implantar (instalar) el programa. Consiste en poner el programa en funcionam iento junto con los componentes que pueda necesitar (bases de datos, redes de co municaciones, 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 slo el conocimiento de los requi sitos y con una modesta fase de anlisis y diseo. Referencias histricas La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabel la Milbanke Byron y Lord Byron. Anabella introdujo en las matemticas a Ada quien, despus de conocer a Charles Babbage, tradujo y ampli una descripcin de su mquina an altica. Incluso aunque Babbage nunca complet la construccin de cualquiera de sus mqu inas, el trabajo que Ada realiz con stas le hizo ganarse el ttulo de primera progra madora de computadoras del mundo. El nombre del lenguaje de programacin Ada fue e scogido como homenaje a esta programadora. No olvidemos que este proceso est aplicado a todos los mtodos cientficos que actual mente se practican. Objetivos de la programacin 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: Correccin. Un programa es correcto si hace lo que debe hacer tal y como se es tableci 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 antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace. Claridad. Es muy importante que el programa sea lo ms claro y legible posible , para facilitar as su desarrollo y posterior mantenimiento. Al elaborar un progr ama se debe intentar que su estructura sea sencilla y coherente, as como cuidar e l estilo en la edicin; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creacin como en las fases posteriores de correccin de errores , ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por

otro programador, con lo amadores puedan continuar uso a utilizar Arte ASCII para impedir un anlisis cado.

cual la claridad es an ms necesaria para que otros progr el trabajo fcilmente. Algunos programadores llegan incl para delimitar secciones de cdigo. Otros, por diversin o cmodo a otros programadores, recurren al uso de cdigo ofus

Eficiencia. Se trata de que el programa, adems de realizar aquello para lo qu e fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un pr ograma, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros re cursos que tambin pueden ser de consideracin al obtener la eficiencia de un progra ma, dependiendo de su naturaleza (espacio en disco que utiliza, trfico de red que genera, etc.). Portabilidad. Un programa es portable cuando tiene la capacidad de poder eje cutarse en una plataforma, ya sea hardware o software, diferente a aqulla en la q ue se elabor. La portabilidad es una caracterstica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse tambin en la familia de sistemas operativos Windows. Esto pe rmite que el programa pueda llegar a ms usuarios ms fcilmente.