El computador dispone de un conjunto de instrucciones que son reconocidas y ejecutadas por el procesador. Estas instrucciones se expresan, al igual que los datos, en forma digital binaria, si bien para reconocerlas mejor y evitar errores se les asignan unos nombres mnemotécnicos que permiten recordar sus funciones. Estas instrucciones constituyen el lenguaje de máquina del computador, y suelen ser diferentes en función del fabricante del procesador.
El lenguaje de máquina es ejecutado a gran velocidad por el procesador, en los computadores actuales esta velocidad se mide en millones de operaciones por segundo; por otra parte, el lenguaje de máquina permite el acceso directo a todos los órganos del computador. Por estos motivos el lenguaje máquina es insustituible en aquellas aplicaciones donde sea necesaria una gran rapidez de ejecución, o el acceso directo a ciertos órganos del computador.
Las instrucciones del lenguaje de máquina son en general muy poco potentes, operan sobre datos de pequeño tamaño, y en muchos casos no incluyen ni multiplicaciones ni divisiones. Para poder operar sobre datos mayores o realizar operaciones más complejas, tales como potencias o logaritmos, hay que fraccionar los datos y aplicar sucesivamente las operaciones simples, siguiendo algoritmos específicos. Por este motivo, y por su estrecha relación con el hardware, a los lenguajes de máquina se les llama lenguajes de bajo nivel. En consecuencia, la tarea de escribir programas en lenguaje de máquina es tediosa y está sujeta a muchos errores.
Problema
| diseño de algoritmo
Algoritmo
| programación
Programa fuente
| traductor
Programa objeto
| procesador
Programa en ejecución
Ante la necesidad de escribir programas cada vez más complejos y fiables, los informáticos desarrollaron lenguajes con niveles más elevados de abstracción, que incluían operaciones y datos más complejos a los que llamaron lenguajes de alto nivel. De esta forma se acorta el camino entre el algoritmo y su expresión en forma de programa, porque los lenguajes de alto nivel pueden expresar mejor las acciones y objetos que intervienen en los algoritmos.
Una de las grandes ventajas de estos lenguajes radica en que la traducción del programa escrito en lenguaje de alto nivel (programa fuente) al lenguaje de máquina (programa objeto) que, como recordamos, es el único que puede ser ejecutado por el computador, es automática y se realiza por un programa traductor. Para ello, junto con las especificaciones del lenguaje, reglas de sintaxis y semántica, se desarrollan los necesarios programas de traducción.
Durante el proceso de traducción se suelen detectar errores, debidos al incumplimiento de las reglas sintácticas del lenguaje o a causas más sutiles, que deben corregirse antes de poder ejecutar el programa. Si durantela ejecución de un programa se realizan operaciones no permitidas (tales como divisiones por cero, accesos fuera de límites, : : : ) se producen los llamados errores de ejecución.
Aunque un programa se haya traducido eliminando todos los errores sintácticos y de ejecución, aún puede no realizar correctamente la tarea para la que fue creado, por contener errores lógicos. Por lo tanto es necesario comprobar el funcionamiento del programa utilizando datos de prueba que permitan realizar los cálculos a mano y comprobar así las partes más con°ictivas del programa. Este proceso se conoce como depuración de los programas.
En la actualidad la mayoría de los programas se escriben en lenguajes de alto nivel, reservándose los lenguajes de bajo nivel para aquellas aplicaciones donde se necesite una elevada velocidad o un acceso directo a los órganos del computador; por ejemplo, en los programas traductores o en programas de gestión del computador.
No hay comentarios:
Publicar un comentario