Un programa informtico es un conjunto de instrucciones que una vez ejecutadas
realizarn una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar. 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 extensiones; posteriormente, los presentaron como ficheros ejecutables, con extensin .exe, en los sistemas operativos de la familia Windows) debido a que una vez que han pasado por el proceso de compilacin y han sido creados, las instrucciones que 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 su cdigo fuente, el cual es transformado en un binario una vez que es compilado.
Generalmente el cdigo fuente lo escriben profesionales conocidos como programadores. Este cdigo se escribe en un lenguaje que sigue uno de los siguientes dos paradigmas: imperativo o declarativo, y que posteriormente puede ser convertido en una imagen ejecutable a travs de un programa- compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta instruccin por instruccin.
Programacin 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 desarrollado 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 desarrollo de software. El trmino ingeniera de software se est convirtiendo en muy popular, 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 imperativos y declarativos.
Los programas escritos con un lenguaje imperativo especifican un algoritmo utilizando 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 una expresin a una variable o usar el valor de una variable para alterar las estructuras 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 sentencia de asignacin en una clase de variables llamadas variables no locales.
Los programas escritos en un lenguaje declarativo especifican las propiedades que tienen o que deben cumplirse para la salida. No especifican detalles expresados 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 funcionales y lgicos son dos amplias categoras de lenguajes declarativos. El principio detrs de los lenguajes funcionales (como Haskell) es el de no permitir efectos secundarios, lo que hace que sea ms fcil para razonar sobre los programas como si se tratasen 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 detallada al propio sistema Prolog.
La forma en que se crea el programa puede ser textual o visual. En un programa de lenguaje visual, los elementos en vez de ser textualmente especificados son manipulados grficamente.
Ejecucin
Una vez escritos, pueden ser ejecutados de diversas formas6 :
Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama interpretar y a los programas que lo hacen se los 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 multipropsito, est en su facilidad de uso y productividad y de hecho, es usado en parte 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 programa traductor se le denomina compilador. Ejemplos de esto son: El lenguaje C, que combina en su sintaxis caractersticas de medio y bajo nivel y el compilador gcc usado en el proyecto GNU.
Programas que se auto-modifican Un programa informtico en ejecucin normalmente es tratado como algo diferente de los datos con los cuales opera. Sin embargo, en algunos casos sta distincin es ambigua, especialmente cuando un programa se modifica a s mismo. El programa modificado es secuencialmente ejecutado como parte del mismo programa. El cdigo que se auto-modifica es posible para programas escritos en cdigo mquina, Lenguaje ensamblador, 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 disco), para que luego el usuario de la computadora, directa o indirectamente, solicite su ejecucin. Al momento de dicha solicitud, el programa es cargado en la memoria de acceso aleatorio o RAM del equipo, bajo el control del software llamado sistema operativo, el cual puede acceder directamente al procesador.
La Historia de La Unión Soviética Comenzó en Diciembre de 1922 Al Suscribirse El Tratado de La Unión Entre Las Repúblicas Socialistas Soviéticas de Rusia