Programa informático
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 le denomina software, que más genéricamente 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.
Una vez escritos, pueden ser ejecutados de diversas formas:
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 en estaciones Unix y que fue escrito para el
proyecto GNU o Python, cuya peculiaridad además de ser
multipropósito, está en su facilidad de uso y productividad y de
hecho, es usado en parte de los proyectos Google y YouTube.
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.
Programas que se auto-modifican
Un programa en ejecución se trata de forma diferente que los datos
en los cuales opera. De cualquier forma, en algunos casos ésta
distinción es ambigua, especialmente cuando un programa se modifica
a sí mismo. El programa modificado es secuencialmente ejecutado como
parte del mismo programa. Se pueden escribir programas
auto-modificables en lenguajes como Lisp, COBOL y Prol
Ejecución y almacenamiento de los programas
Típicamente, los programas se almacenan en una memoria no volátil
(por ejemplo un disco), para que luego el usuario de la computadora,
directa o indirectamente, solicite su ejecución. 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. El
procesador ejecuta (corre) el programa, instrucción por instrucción
hasta que termina. A un programa en ejecución se le suele llamar
también proceso. Un programa puede terminar su ejecución en forma
normal o por causa de un error, dicho error puede ser de software o
de hardware.
Programas empotrados en hardware
Algunos programas están empotrados en el hardware. Una computadora
con arquitectura de programas almacenados requiere un programa
inicial almacenado en su ROM para arrancar. El proceso de arranque
es para identificar e inicializar todos los aspectos del sistema,
desde los registros del procesador, controladores de dispositivos
hasta el contenido de la memoria RAM.4 Seguido del proceso de
inicialización, 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 podría 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 ausencia de energía.
Programas cargados manualmente
Los programas históricamente se cargaron manualmente al procesador
central mediante interruptores. Una instrucción era representada por
una configuración de estado abierto o cerrado de los interruptores.
Después de establecer la configuración, se ejecutaba un botón de
ejecución. Este proceso era repetitivo. También, históricamente los
programas se cargaban manualmente mediante una cinta de papel o
tarjetas perforadas. Después de que el programa se cargaba, la
dirección de inicio se establecía mediante interruptores y el botón
de ejecución se presionaba.6
Programas generados automáticamente.
La programación automática es un estilo de programación que crea
código fuente mediante clases genéricas, prototipos, plantillas,
aspectos, y generadores de código para aumentar la productividad del
programador. El código fuente se genera con herramientas de
programación tal como un procesador de plantilla o un IDE. La forma
más simple de un generador de código fuente es un procesador macro,
tal como el preprocesador de C, que reemplaza patrones de código
fuente de acuerdo a reglas relativamente simples.
Un motor de software da de salida código fuente o lenguaje de
marcado que simultáneamente se vuelve la entrada de otro proceso
informático. Podemos pensar como analogía un proceso manejando a
otro siendo el código máquina quemado como combustible. Los
servidores de aplicaciones son motores de software que entregan
aplicaciones a computadoras cliente. Por ejemplo, un software para
wikis es un sevidor de aplicaciones que permite a los usuarios
desarrollar contenido dinámico ensamblado a partir de artículos. Las
Wikis generan HTML, CSS, Java, y Javascript los cuales son
interpretados por un navegador web.
Conocer más
- volver -
|