Você está na página 1de 4

Programa informtico Saltar a: navegacin, bsqueda Un programa informtico es un conjunto de instrucciones que una vez ejecutadas rea lizarn

una o varias tareas en una computadora. Sin programas, estas mquinas no pue den funcionar.1 2 Al conjunto general de programas, se le denomina software, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digital. En informtica, se los denomina comnmente binarios, (propio en sistemas Unix, donde debido a la estructura de este ltimo, los ficheros no necesitan hacer uso de ext ensiones; posteriormente, los presentaron como ficheros ejecutables, con extensin .exe, en los sistemas operativos de la familia Windows) debido a que una vez qu e han pasado por el proceso de compilacin y han sido creados, las instrucciones q ue se escribieron en un determinado lenguaje de programacin, han sido traducidas al nico idioma que la mquina comprende, combinaciones de ceros y unos llamado cdigo mquina. El mismo trmino, puede referirse tanto a un programa ejecutable, como a s u cdigo fuente, el cual es transformado en un binario una vez que es compilado. Generalmente el cdigo fuente lo escriben profesionales conocidos como programador es. Este cdigo se escribe en un lenguaje que sigue uno de los siguientes dos para digmas: imperativo o declarativo, y que posteriormente puede ser convertido en u na imagen ejecutable a travs de un programa-compilador. Cuando se pide que el pro grama sea ejecutado, el procesador ejecuta instruccin por instruccin. De acuerdo a sus funciones, los programas informticos se clasifican en software d e sistema y software de aplicacin. En los computadores actuales, al hecho de ejec utar varios programas de forma simultnea y eficiente, se le conoce como multitare a. ndice 1 Programacin 1.1 Paradigmas 2 Ejecucin 2.1 Programas que se auto-modifican 3 Ejecucin y almacenamiento de los programas 3.1 Programas empotrados en hardware 3.2 Programas cargados manualmente 3.3 Programas generados automticamente 3.4 Ejecucin simultnea 4 Categoras funcionales 5 Vase tambin 6 Referencias 7 Bibliografa Programacin Artculo principal: Programacin. #include <stdio.h> int main() { printf("Hello world!\n"); return 0; } El cdigo fuente de un programa escrito en el lenguaje de programacin C

La programacin de computadoras es el proceso iterativo de escribir o editar cdigo fuente. Dicha edicin de cdigo fuente implica probar, analizar y perfeccionar, y, a veces, coordinar con otros programadores, en el caso de un programa desarrollad o en conjunto. Una persona que practica esta tcnica se la conoce como programador de computadoras, desarrollador de software, o codificador. El proceso, a veces a largo plazo, de programacin de computadoras normalmente se lo conoce como desar rollo de software. El trmino ingeniera de software se est convirtiendo en muy popul ar, ya que esta actividad es vista como una disciplina de ingeniera. Paradigmas Los programas de ordenador se pueden clasificar segn el paradigma del lenguaje de programacin utilizado para producirlos. Dos de los principales paradigmas son im perativos y declarativos. Los programas escritos con un lenguaje imperativo especifican un algoritmo utili zando declaraciones, expresiones e informes.3 Una declaracin asocia un nombre de variable a un tipo de datos. Por ejemplo: var x: integer; . Una expresin produce un valor. Por ejemplo: 2 + 2 produce 4. Por ltimo, una declaracin puede asignar un a expresin a una variable o usar el valor de una variable para alterar las estruc turas de control del programa. Por ejemplo: x := 2 + 2; if x = 4 then hacer_algo (); Una crtica de los lenguajes imperativos es el efecto secundario de una senten cia de asignacin en una clase de variables llamadas variables no locales.4 Los programas escritos en un lenguaje declarativo especifican las propiedades qu e tienen o que deben cumplirse para la salida. No especifican detalles expresado s ??en trminos de flujo de control de la mquina de ejecucin pero s de las relaciones matemticas entre los objetos declarados y sus propiedades. Los lenguajes funcion ales y lgicos son dos amplias categoras de lenguajes declarativos. El principio de trs de los lenguajes funcionales (como Haskell) es el de no permitir efectos secu ndarios, lo que hace que sea ms fcil para razonar sobre los programas como si se t ratasen de funciones matemticas.4 El principio detrs de los lenguajes lgicos (como Prolog) es definir el problema a ser resuelto - la meta - y dejar la solucin deta llada al propio sistema Prolog.5 El objetivo se define proporcionando la lista d e sub-objetivos. Luego, cada subobjetivo se define ms arriba, proporcionando la l ista de sus sub-objetivos, etc. Si la ruta de sub-objetivos no encuentra una sol ucin, entonces ese subobjetivo se retrocede y otra va se intenta sistemticamente. La forma en que se crea el programa puede ser textual o visual. En un programa d e lenguaje visual, los elementos en vez de ser textualmente especificados son ma nipulados grficamente. Ejecucin Una vez escritos, pueden ser ejecutados de diversas formas6 : Mediante un programa que va adaptando las instrucciones conforme son encontr adas. A este proceso se lo llama interpretar y a los programas que lo hacen se l os conoce como intrpretes. Ejemplos de esto son bash, clsico en estaciones Unix y que fue escrito para el proyecto GNU o Python, cuya peculiaridad adems de ser mul tipropsito, est en su facilidad de uso y productividad y de hecho, es usado en par te de los proyectos Google y YouTube.7 Traduciendo el cdigo escrito del programa (lo que se denomina cdigo fuente), a su equivalente en lenguaje mquina. A este proceso se le llama compilar y al prog rama traductor se le denomina compilador. Ejemplos de esto son: El lenguaje C, q ue combina en su sintaxis caractersticas de medio y bajo nivel y el compilador gc c usado en el proyecto GNU. Programas que se auto-modifican Un programa informtico en ejecucin normalmente es tratado como algo diferente de l os datos con los cuales opera. Sin embargo, en algunos casos sta distincin es ambi

gua, especialmente cuando un programa se modifica a s mismo. El programa modifica do es secuencialmente ejecutado como parte del mismo programa. El cdigo que se au to-modifica es posible para programas escritos en cdigo mquina, Lenguaje ensamblad or, Lisp, C, COBOL, PL/1 y Prolog y JavaScript (la funcin eval), entre otros. Ejecucin y almacenamiento de los programas Tpicamente, los programas se almacenan en una memoria no voltil (por ejemplo un di sco), para que luego el usuario de la computadora, directa o indirectamente, sol icite su ejecucin. Al momento de dicha solicitud, el programa es cargado en la me moria de acceso aleatorio o RAM del equipo, bajo el control del software llamado sistema operativo, el cual puede acceder directamente al procesador. El procesa dor ejecuta (corre) el programa, instruccin por instruccin hasta que termina. A un programa en ejecucin se le suele llamar tambin proceso. Un programa puede termina r su ejecucin en forma normal o por causa de un error, dicho error puede ser de s oftware o de hardware. Programas empotrados en hardware El microcontrolador a la derecha de la Memoria USB est controlada por un firmware empotrado. Algunos programas estn empotrados en el hardware. Una computadora con arquitectur a de programas almacenados requiere un programa inicial almacenado en su ROM par a arrancar. El proceso de arranque es para identificar e inicializar todos los a spectos del sistema, desde los registros del procesador, controladores de dispos itivos hasta el contenido de la memoria RAM.8 Seguido del proceso de inicializac in, este programa inicial carga al sistema operativo e inicializa al contador de programa para empezar las operaciones normales. Independiente de la computadora, un dispositivo de hardware podra tener firmware empotrado para el control de sus operaciones. El firmware se utiliza cuando se espera que el programa cambie en raras ocasiones o nunca, o cuando el programa no debe perderse cuando haya ausen cia de energa.9 Programas cargados manualmente Interruptores para la carga manual en una Data General Nova 3. Los programas histricamente se cargaron manualmente al procesador central mediant e interruptores. Una instruccin era representada por una configuracin de estado ab ierto o cerrado de los interruptores. Despus de establecer la configuracin, se eje cutaba un botn de ejecucin. Este proceso era repetitivo. Tambin, histricamente los p rogramas se cargaban manualmente mediante una cinta de papel o tarjetas perforad as. Despus de que el programa se cargaba, la direccin de inicio se estableca median te interruptores y el botn de ejecucin se presionaba.10 Programas generados automticamente La programacin automtica es un estilo de programacin que crea cdigo fuente mediante clases genricas, prototipos, plantillas, aspectos, y generadores de cdigo para aum entar la productividad del programador. El cdigo fuente se genera con herramienta s de programacin tal como un procesador de plantilla o un IDE. La forma ms simple de un generador de cdigo fuente es un procesador macro, tal como el preprocesador de C, que reemplaza patrones de cdigo fuente de acuerdo a reglas relativamente s imples. Un motor de software da de salida cdigo fuente o lenguaje de marcado que simultnea mente se vuelve la entrada de otro proceso informtico. Podemos pensar como analoga un proceso manejando a otro siendo el cdigo mquina quemado como combustible. Los servidores de aplicaciones son motores de software que entregan aplicaciones a c omputadoras cliente. Por ejemplo, un software para wikis es un sevidor de aplica ciones que permite a los usuarios desarrollar contenido dinmico ensamblado a part ir de artculos. Las Wikis generan HTML, CSS, Java, y Javascript los cuales son in terpretados por un navegador web. Ejecucin simultnea Vanse tambin: Proceso (informtica) y Multiprocesamiento.

Muchos programas pueden correr simultneamente en la misma computadora, a lo cual se le conoce como multitarea y puede lograrse a travs de mecanismos de software o de hardware. Los sistemas operativos modernos pueden correr varios programas a travs del planificador de procesos un mecanismo de software para conmutar con fre cuencia la cantidad de procesos del procesador de modo que los usuarios puedan i nteractuar con cada programa mientras estos estn corriendo.11 Tambin se puede logr ar la multitarea por medio del hardware; las computadoras modernas que usan vari os procesadores o procesadores con varios ncleos pueden correr muchos programas a la vez.12 Categoras funcionales Los programas se pueden categorizar segn lneas funcionales. Estas categoras funcion ales son software de sistema y software de aplicacin. El software de sistema incl uye al sistema operativo el cual acopla el hardware con el software de aplicacin. 13 El propsito del sistema operativo es proveer un ambiente en el cual el softwar e de aplicacin se ejecuta de una manera conveniente y eficiente.13 Adems del siste ma operativo, el software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora. Si un programa no es software de sistema en tonces es software de aplicacin. El middleware tambin es un software de aplicacin q ue acopla el software de sistema con la interfaz de usuario. Tambin son software de aplicacin los programas utilitarios que ayudan a los usuarios a resolver probl emas de aplicaciones, como por ejemplo la necesidad de ordenamiento. Vase tambin Software Lenguajes de programacin Ingeniera de software Hediondez del cdigo Referencias Jump up ? Stair, Ralf M., et al (2003). Principles of Information Systems, S ixth Edition. Thomson Learning, Inc.. pp. 132. ISBN 0-619-06489-7. (en ingls). Jump up ? Silberschatz, Abraham (1994). Operating System Concepts, Fourth Ed ition. Addison-Wesley. pp. 58. ISBN 0-201-50480-4. (en ingls). Jump up ? Wilson, Leslie B. (1993) (en ingls). Comparative Programming Langua ges, Second Edition. Addison-Wesley. pp. 75. ISBN 0-201-56885-3. ? Jump up to: a b Wilson, Leslie B. (1993) (en ingls). Comparative Programmin g Languages, Second Edition. Addison-Wesley. pp. 213. ISBN 0-201-56885-3. Jump up ? Wilson, Leslie B. (1993). Comparative Programming Languages, Secon d Edition. Addison-Wesley. pp. 244. ISBN 0-201-56885-3. Jump up ? Q33 NY . Jump up ? [Mark] (2010). O'Reilly Media, Inc. (ed.): Learning Python, Fourth Edition (libro). O'Reilly. Consultado el 11 de

Você também pode gostar