Un programa es una secuencia de instrucciones que indican al hardware de un ordenador qué operaciones debe realizar con los datos.
Los programas pueden estar incorporados al propio hardware, o bien pueden existir de manera independiente en forma de software.
En algunas computadoras especializadas las instrucciones operativas están incorporadas en el sistema de circuitos; entre los
ejemplos más comunes pueden citarse los microordenadores de las calculadoras, relojes de pulsera, motores de coches y hornos
microondas. Por otro lado, un ordenador universal, o de uso general, contiene algunos programas incorporados (en la ROM) o
instrucciones (en el chip del procesador), pero depende de programas externos para ejecutar tareas útiles. Una vez programado,
podrá hacer tanto o tan poco como le permita el software que lo controla en determinado momento. El software de uso más
generalizado incluye una amplia variedad de programas de aplicaciones, es decir, instrucciones al ordenador acerca de cómo
realizar diversas tareas.
Lenguajes
Las instrucciones deben darse en un lenguaje de programación, es decir, en una determinada configuración de información digital binaria.
En las primeras computadoras, la programación era una tarea difícil y laboriosa ya que los conmutadores ON-OFF de las válvulas de vacío
debían configurarse a mano. Programar tareas tan sencillas como ordenar una lista de nombres requería varios días de trabajo de equipos
de programadores. Desde entonces se han inventado varios lenguajes informáticos, algunos orientados hacia funciones específicas y
otros centrados en la facilidad de uso.
Lenguaje Maquina
El lenguaje propio del ordenador, basado en el sistema binario, o código máquina, resulta difícil de utilizar para las personas.
El programador debe introducir todos y cada uno de los comandos y datos en forma binaria, y una operación sencilla como comparar
el contenido de un registro con los datos situados en una ubicación del chip de memoria puede tener el siguiente
formato: 11001010 00010111 11110101 00101011. La programación en lenguaje máquina es una tarea tan tediosa y consume
tanto tiempo que muy raras veces lo que se ahorra en la ejecución del programa justifica los días o semanas que se han necesitado
para escribir el mismo.
Lenguaje Ensamblador
Uno de los métodos inventados por los programadores para reducir y simplificar el proceso es la denominada programación con
lenguaje ensamblador. Al asignar un código mnemotécnico (por lo general de tres letras) a cada comando en lenguaje máquina,
es posible escribir y depurar o eliminar los errores lógicos y de datos en los programas escritos en lenguaje ensamblador,
empleando para ello sólo una fracción del tiempo necesario para programar en lenguaje máquina. En el lenguaje ensamblador,
cada comando mnemotécnico y sus operadores simbólicos equivalen a una instrucción de máquina. Un programa ensamblador traduce
el código fuente, una lista de códigos de operación mnemotécnicos y de operadores simbólicos, a código objeto
(es decir, a lenguaje máquina) y, a continuación, ejecuta el programa.
Sin embargo, el lenguaje ensamblador puede utilizarse con un solo tipo de chip de CPU o microprocesador. Los programadores,
que dedicaron tanto tiempo y esfuerzo al aprendizaje de la programación de un ordenador, se veían obligados a aprender un
nuevo estilo de programación cada vez que trabajaban con otra máquina. Lo que se necesitaba era un método abreviado en el
que un enunciado simbólico pudiera representar una secuencia de numerosas instrucciones en lenguaje máquina, y un método
que permitiera que el mismo programa pudiera ejecutarse en varios tipos de máquinas. Estas necesidades llevaron al desarrollo
de lenguajes de alto nivel.
Lenguaje de Alto Nivel
Los lenguajes de alto nivel suelen utilizar términos ingleses del tipo LIST, PRINT u OPEN como comandos que representan una
secuencia de decenas o de centenas de instrucciones en lenguaje máquina. Los comandos se introducen desde el teclado, desde un
programa residente en la memoria o desde un dispositivo de almacenamiento, y son interceptados por un programa que los traduce
a instrucciones en lenguaje máquina.
Los programas traductores son de dos tipos: intérpretes y compiladores. Con un intérprete, los programas que repiten un ciclo
para volver a ejecutar parte de sus instrucciones, reinterpretan la misma instrucción cada vez que aparece. Por consiguiente,
los programas interpretados se ejecutan con mucha mayor lentitud que los programas en lenguaje máquina. Por el contrario, los
compiladores traducen un programa íntegro a lenguaje máquina antes de su ejecución, por lo cual se ejecutan con tanta rapidez
como si hubiesen sido escritos directamente en lenguaje máquina.
Se considera que fue la estadounidense Grace Hopper quien implementó el primer lenguaje de ordenador orientado al uso comercial.
Después de programar un ordenador experimental en la Universidad de Harvard, trabajó en los modelos UNIVAC I y UNIVAC II,
desarrollando un lenguaje de alto nivel para uso comercial llamado FLOW-MATIC. Para facilitar el uso del ordenador en las
aplicaciones científicas, IBM desarrolló un lenguaje que simplificaría el trabajo que implicaba el tratamiento de fórmulas
matemáticas complejas. Iniciado en 1954 y terminado en 1957, el FORTRAN (acrónimo de Formula Translator) fue el primer lenguaje
exhaustivo de alto nivel de uso generalizado.
En 1957 una asociación estadounidense, la Association for Computing Machinery comenzó a desarrollar un lenguaje universal que
corrigiera algunos de los defectos del FORTRAN. Un año más tarde fue lanzado el ALGOL (acrónimo de Algorithmic Language),
otro lenguaje de orientación científica. De gran difusión en Europa durante las décadas de 1960 y 1970, desde entonces ha
sido sustituido por nuevos lenguajes, mientras que el FORTRAN continúa siendo utilizado debido a las gigantescas inversiones
que se hicieron en los programas existentes. El COBOL (acrónimo de Common Business Oriented Language) es un lenguaje de programación
para uso comercial y empresarial especializado en la organización de datos y manipulación de archivos, y hoy día está muy difundido
en el mundo empresarial.
El lenguaje BASIC (acrónimo de Código de Instrucciones Simbólicas de Uso General para Principiantes) fue desarrollado en el
Dartmouth College a principios de la década de 1960 y está dirigido a los usuarios de ordenador no profesionales. Este lenguaje
se universalizó gracias a la popularización de los microordenadores en las décadas de 1970 y 1980. Calificado de lento, ineficaz
y poco estético por sus detractores, BASIC es sencillo de aprender y fácil de utilizar. Como muchos de los primeros microordenadores
se vendieron con BASIC incorporado en el hardware (en la memoria ROM), se generalizó el uso de este lenguaje.
Aunque existen centenares de lenguajes informáticos y de variantes, hay algunos dignos de mención, como el PASCAL, diseñado en un
principio como herramienta de enseñanza, hoy es uno de los lenguajes de microordenador más populares; el Logo fue desarrollado
para que los niños pudieran acceder al mundo de la informática; el C, un lenguaje de Bell Laboratories diseñado en la década de 1970,
se utiliza ampliamente en el desarrollo de programas de sistemas, al igual que su sucesor, el C++. El LISP y el PROLOG han alcanzado
amplia difusión en el campo de la inteligencia artificial. |