Beruflich Dokumente
Kultur Dokumente
Programa informtico
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.[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 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.
De acuerdo a sus funciones, los programas informticos se clasifican en software de sistema y software de
aplicacin. En los computadores actuales, al hecho de ejecutar varios programas de forma simultnea y eficiente, se
le conoce como multitarea.
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 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. 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
Programa informtico 2
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. 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. El objetivo se define proporcionando la
lista de sub-objetivos. Luego, cada subobjetivo se define ms arriba, proporcionando la lista de sus sub-objetivos,
etc. Si la ruta de sub-objetivos no encuentra una solucin, 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 de lenguaje visual, los elementos en
vez de ser textualmente especificados son manipulados grficamente.
Ejecucin
Una vez escritos, pueden ser ejecutados de diversas formas[3]:
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.
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.
Ejecucin simultnea
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
frecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programa
mientras estos estn corriendo.[7] Tambin se puede lograr la multitarea por medio del hardware; las computadoras
modernas que usan varios procesadores o procesadores con varios ncleos pueden correr muchos programas a la
vez.[8]
Categoras funcionales
Los programas se pueden categorizar segn lneas funcionales. Estas categoras funcionales son software de sistema
y software de aplicacin. El software de sistema incluye al sistema operativo el cual acopla el hardware con el
software de aplicacin.[9] El propsito del sistema operativo es proveer un ambiente en el cual el software de
aplicacin se ejecuta de una manera conveniente y eficiente.[9] Adems del sistema operativo, el software de sistema
incluye programas utilitarios que ayudan a manejar y configurar la computadora. Si un programa no es software de
sistema entonces es software de aplicacin. El middleware tambin es un software de aplicacin que 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 problemas de aplicaciones, como por ejemplo la necesidad de ordenamiento.
Referencias
[1] (en ingls).
[2] (en ingls).
[3] Q33 NY .
[4] (en ingls).
[5] (en ingls).
[6] (en ingls).
[7] (en ingls).
[8] (en ingls).
[9] (en ingls).
Bibliografa
Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1, 3rd Edition. Boston: Addison-Wesley.
ISBN 0-201-89683-4. (en ingls).
Knuth, Donald E. (1997). The Art of Computer Programming, Volume 2, 3rd Edition. Boston: Addison-Wesley.
ISBN 0-201-89684-2. (en ingls).
Knuth, Donald E. (1997). The Art of Computer Programming, Volume 3, 3rd Edition. Boston: Addison-Wesley.
ISBN 0-201-89685-0. (en ingls).
Fuentes y contribuyentes del artculo 5
Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/