programa

Un **Programa informático** es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no pueden funcionar. Al conjunto general de programas, se lo denomina software y así, se refiere al equipamiento lógico o soporte lógico de una computadora digital. En informática, se los denomina comúnmente //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 extensión //.exe//, en los sistemas operativos de la familia Windows) debido a que una vez que han pasado por el proceso de compilación y han sido creados, las instrucciones que se escribieron en un lenguaje de programación que los humanos usan para escribirlos con mayor facilidad, se han traducido al único idioma que la máquina comprende, combinaciones de ceros y unos llamada código máquina. El mismo término, puede referirse tanto a un programa ejecutable, como a su código fuente, el cual es transformado en un binario cuando es compilado. Generalmente el código fuente lo escriben profesionales conocidos como programadores. 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 por un compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta instrucción por instrucción. De acuerdo a sus funciones, se clasifican en software de sistema y software de aplicación. En los computadores actuales, al hecho de ejecutar varios programas de forma simultánea y eficiente, se le conoce como multitarea.

Aquí un ejemplo de programas informáticos:



LENGUAJE DE PROGRAMACIÓN
Un **lenguaje de programación** es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación sino un conjunto de instrucciones que permiten diseñar el contenido y el texto de los documentos) Permite especificar de //manera precisa// sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar //relativamente// próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa. Los procesadores usados en las computadoras entienden únicamente instrucciones en lenguaje de máquina. Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras:
 * 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 intérpretes. Ejemplos de esto son bash, clásico interprete de comandos en estaciones unix que fue escrito para el proyecto GNU o Python, intérprete multipropósito.
 * Traduciendo el código escrito del programa (lo que se denomina código fuente), a su equivalente en lenguaje máquina. 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 características de medio y bajo nivel y el compilador gcc usado en el proyecto GNU.