Programa informático para niños
Un programa informático o programa de computadora es un conjunto de instrucciones u órdenes que una computadora sigue para realizar una tarea específica o resolver un problema. Para que una computadora funcione, necesita estos programas, que son ejecutados por su procesador central.
Un programa puede existir en dos formatos principales:
- El formato ejecutable: Es el que la computadora puede usar directamente para seguir las instrucciones.
- El código fuente: Es la versión legible para los humanos, escrita por programadores. Permite a los creadores entender y mejorar los pasos que sigue el programa (conocidos como algoritmos).
Cuando hablamos de una colección de programas de computadora y los datos que usan, nos referimos al software.
Generalmente, los profesionales llamados programadores de computadora escriben el código fuente. Lo hacen usando un lenguaje de programación que sigue ciertas reglas o "paradigmas". Después, este código puede ser transformado en un archivo ejecutable (un programa que la computadora puede correr) por una herramienta llamada compilador. También, los programas pueden ejecutarse con la ayuda de un intérprete o estar integrados directamente en el hardware (lo que se conoce como firmware).
Los programas informáticos se clasifican en dos grandes grupos según su función:
- Software de sistema: Ayuda a la computadora a funcionar.
- Software de aplicación: Realiza tareas específicas para el usuario.
En las computadoras modernas, es común que varios programas se ejecuten al mismo tiempo de manera eficiente. A esto se le llama multitarea.
Contenido
¿Qué es la programación de computadoras?
La programación de computadoras es el proceso de escribir y mejorar el código fuente de un programa. Este proceso incluye probar el programa, analizar cómo funciona y perfeccionarlo. A veces, si es un programa grande, varios programadores trabajan juntos. La persona que hace esto se llama programador de computadoras, desarrollador de software o codificador.
El proceso de crear un programa, que puede llevar mucho tiempo, se conoce como desarrollo de software. También se usa el término ingeniería de software, porque esta actividad se considera una disciplina de ingeniería, que aplica principios científicos y matemáticos para diseñar y construir sistemas.
¿Cómo se clasifican los programas según su estilo de creación?
Los programas de computadora se pueden clasificar según el estilo o "paradigma" del lenguaje de programación que se usó para crearlos. Los dos paradigmas principales son:
Programación imperativa: Pasos detallados
Los programas escritos con un lenguaje imperativo le dicen a la computadora exactamente cómo hacer algo, paso a paso. Es como darle una receta muy detallada. Usan:
- Declaraciones: Para nombrar variables y decir qué tipo de información guardarán (por ejemplo, "guarda un número entero aquí").
- Expresiones: Para calcular valores (por ejemplo, "2 + 2" da 4).
- Instrucciones: Para asignar valores a variables o cambiar el flujo del programa (por ejemplo, "si el resultado es 4, haz esto").
Programación declarativa: Qué lograr, no cómo
Los programas escritos en un lenguaje declarativo se enfocan en lo que se quiere lograr, no en cómo hacerlo. Es como decir "quiero un pastel", sin dar todos los pasos de la receta. Estos lenguajes describen las propiedades que la salida debe tener o las relaciones entre los datos.
Hay dos categorías principales de lenguajes declarativos:
- Lenguajes funcionales (como Haskell): Se basan en funciones matemáticas y evitan que una parte del programa cambie algo inesperadamente en otra parte.
- Lenguajes lógicos (como Prolog): Definen el problema a resolver y dejan que el sistema encuentre la solución. El problema se divide en sub-problemas hasta que se encuentra una solución.
La forma en que se crea un programa puede ser textual (escribiendo código) o visual (manipulando elementos gráficos). En la programación visual, los elementos se organizan de forma gráfica en lugar de escribirlos.
¿Compilado o interpretado?
El código fuente de un programa, que es legible para los humanos, puede ser transformado en un programa ejecutable de dos maneras:
Programas compilados
Un compilador es una herramienta que traduce todo el código fuente de un lenguaje de programación a un formato que la computadora entiende directamente, llamado código máquina. Los programas compilados se conocen comúnmente como ejecutables o binarios. Una vez compilados, estos programas suelen ser muy rápidos porque la computadora no necesita hacer ninguna traducción adicional mientras se ejecutan.
Programas interpretados
Un intérprete ejecuta el código fuente línea por línea, traduciéndolo y ejecutándolo al mismo tiempo. Lenguajes como BASIC, Perl y Python son ejemplos de programas que se ejecutan de esta manera. Algunos lenguajes, como Java, se compilan primero a un formato intermedio llamado bytecode, que luego es ejecutado por un intérprete especial llamado máquina virtual.
La principal diferencia es que los programas interpretados suelen ser más lentos que los compilados porque el intérprete debe traducir cada instrucción cada vez que se usa. Sin embargo, el desarrollo de software puede ser más rápido con un intérprete, ya que no hay que esperar a que el programa se compile para probarlo. Otra cosa es que un intérprete debe estar presente en la computadora para que el programa interpretado funcione, mientras que un programa compilado no lo necesita.
Es importante saber que un lenguaje de programación no es exclusivamente compilado o interpretado. A veces, un lenguaje que normalmente se interpreta puede tener un compilador, y viceversa.
#include <stdio.h>
#include <conio.h>
int main(void) {
printf("Hola Mundo!\n");
getch();
return 0;
} |
Código fuente del programa Hola mundo escrito en el Lenguaje de programación C |
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hola Mundo!");
}
} |
Código fuente del programa Hola mundo escrito en el Lenguaje de programación Java |
using System;
class Program {
static void Main(string[] args) {
Console.WriteLine("Hola Mundo!");
}
} |
Código fuente del programa Hola mundo escrito en el Lenguaje de programación C# |
¿Cómo se ejecutan y almacenan los programas?
Normalmente, los programas se guardan en una memoria no volátil (como un disco duro) para que no se borren cuando apagas la computadora. Cuando un usuario quiere usar un programa, este se carga en la memoria de acceso aleatorio o RAM de la computadora. El sistema operativo (el software principal de la computadora) controla este proceso y permite que el procesador acceda al programa. El procesador ejecuta el programa, instrucción por instrucción, hasta que termina. A un programa que se está ejecutando se le llama también proceso. Un programa puede terminar normalmente o debido a un error.
Programas integrados en el hardware (firmware)
Algunos programas están integrados directamente en el hardware de un dispositivo. Por ejemplo, una computadora necesita un programa inicial guardado en su ROM para poder arrancar (encenderse). Este programa de arranque identifica e inicializa todas las partes del sistema, desde el procesador hasta la memoria RAM. Después de la inicialización, este programa carga el sistema operativo y permite que la computadora comience a funcionar normalmente.
Además, muchos dispositivos de hardware (como una impresora o un teclado) tienen un firmware integrado para controlar sus operaciones. El firmware se usa cuando se espera que el programa cambie muy pocas veces o nunca, o cuando es importante que el programa no se pierda si se va la luz.
Programas cargados manualmente (historia)
Antiguamente, los programas se cargaban en el procesador central de forma manual, usando interruptores. Cada instrucción se representaba con una combinación de interruptores abiertos o cerrados. Después de configurar los interruptores, se presionaba un botón para ejecutar la instrucción. Este proceso se repetía para cada instrucción. También se usaban cinta de papel o tarjetas perforadas para cargar programas.
Programas generados automáticamente
La programación automática es una forma de crear código fuente usando herramientas especiales. Estas herramientas pueden generar partes del código automáticamente, lo que ayuda a los programadores a ser más productivos. La forma más sencilla de un generador de código fuente es un procesador de macros, que reemplaza patrones de código según reglas simples.
Un "motor de software" puede producir código fuente o lenguaje de marcado que luego es usado por otro proceso informático. Por ejemplo, los servidores de aplicaciones son motores de software que entregan aplicaciones a las computadoras de los usuarios. Un software para wikis es un servidor de aplicaciones que permite a los usuarios crear contenido dinámico, como artículos. Las wikis generan HTML, CSS, Java y Javascript, que son interpretados por un navegador web.
Ejecución simultánea (multitarea)
Muchas computadoras pueden ejecutar varios programas al mismo tiempo. A esto se le llama multitarea. Esto se logra de dos maneras:
- Por software: Los sistemas operativos modernos tienen un "planificador de procesos" que cambia rápidamente entre los programas que se están ejecutando en el procesador. Esto hace que parezca que todos los programas están funcionando al mismo tiempo, y los usuarios pueden interactuar con cada uno.
- Por hardware: Las computadoras modernas con varios procesadores o procesadores con varios núcleos pueden ejecutar muchos programas a la vez de forma real.
¿Cómo se clasifican los programas por su función?
Los programas se pueden clasificar según lo que hacen. Las categorías principales son:
- Software de sistema: Incluye el sistema operativo, que es el programa principal que conecta el hardware de la computadora con el software de aplicación. El sistema operativo crea un ambiente donde el software de aplicación puede funcionar de manera fácil y eficiente. Además del sistema operativo, el software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora.
- Software de aplicación: Si un programa no es software de sistema, entonces es software de aplicación. Estos programas están diseñados para realizar tareas específicas para el usuario, como escribir documentos, navegar por internet o jugar. El middleware también es un tipo de software de aplicación que conecta el software de sistema con la interfaz de usuario. También son software de aplicación los programas utilitarios que ayudan a los usuarios a resolver problemas específicos, como organizar archivos.
Véase también
En inglés: Computer program Facts for Kids
- Algoritmo para la relación entre los programas informáticos y algoritmos
- Aplicación informática
- Virus informático
- Estructura de datos
- Inteligencia artificial
- Sistema multi-agente