Programación de computadoras


La programación de computadoras es el proceso de realizar un cálculo particular (o más generalmente, lograr un resultado de cómputo específico ), generalmente mediante el diseño/construcción de un programa de computadora ejecutable . La programación implica tareas como el análisis, la generación de algoritmos , la precisión de los algoritmos de perfiles y el consumo de recursos, y la implementación de algoritmos (generalmente en un lenguaje de programación elegido , comúnmente denominado codificación ). [1] [2] El código fuente de un programa está escrito en uno o más lenguajes que son inteligibles para los programadores, en lugar de código de máquina , que es ejecutado directamente por la unidad central de procesamiento . El propósito de la programación es encontrar una secuencia de instrucciones que automaticen la realización de una tarea (que puede ser tan compleja como un sistema operativo ) en una computadora , a menudo para resolver un problema determinado. Por lo tanto, la programación competente generalmente requiere experiencia en varios temas diferentes, incluido el conocimiento del dominio de la aplicación , algoritmos especializados y lógica formal .

Las tareas que acompañan y están relacionadas con la programación incluyen pruebas , depuración , mantenimiento del código fuente , implementación de sistemas de compilación y gestión de artefactos derivados , como el código de máquina de los programas informáticos. Estos pueden considerarse parte del proceso de programación, pero a menudo se usa el término desarrollo de software para este proceso más amplio y el término programación , implementación o codificación se reserva para la escritura real del código. La ingeniería de software combina técnicas de ingeniería con desarrollo de software.practicas La ingeniería inversa es un proceso relacionado utilizado por diseñadores, analistas y programadores para comprender y recrear/reimplementar. [3]

Los dispositivos programables existen desde hace siglos. Ya en el siglo IX, los hermanos persas Banu Musa inventaron un secuenciador de música programable, quienes describieron un flautista mecánico automatizado en el Libro de los dispositivos ingeniosos . [4] [5] En 1206, el ingeniero árabe Al-Jazari inventó una caja de ritmos programable en la que se podía hacer que un autómata mecánico musical tocara diferentes ritmos y patrones de batería, a través de clavijas y levas . [6] [7] En 1801, el telar Jacquardpodría producir tejidos completamente diferentes cambiando el "programa": una serie de tarjetas de cartón con agujeros perforados en ellas.

Los algoritmos de descifrado de códigos también han existido durante siglos. En el siglo IX, el matemático árabe Al-Kindi describió un algoritmo criptográfico para descifrar el código cifrado en A Manuscript on Deciphering Cryptographic Messages . Dio la primera descripción del criptoanálisis por análisis de frecuencia , el primer algoritmo de descifrado de códigos. [8]

El primer programa de computadora generalmente data de 1843, cuando la matemática Ada Lovelace publicó un algoritmo para calcular una secuencia de números de Bernoulli , destinado a ser llevado a cabo por el motor analítico de Charles Babbage . [9]

En la década de 1880 , Herman Hollerith inventó el concepto de almacenamiento de datos en formato legible por máquina. [10] Más tarde, un panel de control (placa de conexión) agregado a su Tabulador Tipo I de 1906 permitió programarlo para diferentes trabajos y, a fines de la década de 1940, equipos de registro de unidades como IBM 602 e IBM 604 , fueron programados por paneles de control. de manera similar, como lo fueron las primeras computadoras electrónicas . Sin embargo, con el concepto de computadora de programa almacenado introducido en 1949, tanto los programas como los datos se almacenaron y manipularon de la misma manera en la memoria de la computadora . [11]


Ada Lovelace , cuyas notas añadidas al final del artículo de Luigi Menabrea incluían el primer algoritmo diseñado para ser procesado por una máquina analítica . A menudo se la reconoce como la primera programadora de computadoras de la historia.
Los datos y las instrucciones alguna vez se almacenaron en tarjetas perforadas externas , que se mantuvieron en orden y se organizaron en cubiertas de programas.
Panel de control cableado para una IBM 402 Accounting Machine .
El primer error real conocido que causó un problema en una computadora fue una polilla, atrapada dentro de un mainframe de Harvard, registrada en una entrada del libro de registro fechada el 9 de septiembre de 1947. [24] "Error" ya era un término común para un defecto de software cuando esto se encontró un error.