[*MiIT}– Computación Personal, herramienta indispensable. 5: Lenguajes y programas.

Carlos M. Padrón

Un programa está compuesto por instrucciones que le dicen a la computadora, paso por paso, lo que debe hacer para obtener lo que de ella se quiere. Estas instrucciones se le daban inicialmente de una en una (MARK I) y luego, al aumentar la capacidad de memoria (ENIAC), se pudo almacenar en ella un programa completo, siempre y cuando el total de instrucciones de que constaba el programa cupiera en la memoria que la computadora tenía disponible para ese fin.

Con el concepto de programa apareció el de Lenguaje de Programación, o conjunto de comandos ideado para escribir programas destinados a obtener soluciones en un área específica —como el FORTRAN (FORmula TRANslation), para matemáticas; o el COBOL (COmmon Business Oriented Language) para negocios— o, para ahorrar espacio de memoria, el ASSEMBLER, llamado también en español Ensamblador.

Así, para un científico resultaría más apropiado y fácil programar en Fortran que en Cobol, pero para un especialista financiero sería mejor el Cobol que el Fortran. Con el tiempo surgieron más y más lenguajes (Pascal, Algol, PL/1, Basic, C, C+, etc.). Y en muchos casos era posible —y sigue siéndolo con los lenguajes en uso hoy— que para programar la solución a un determinado problema, un programador usara Fortran, otro Cobol, otro Assembler, etc.., y todos obtuvieran el mismo resultado.

Los lenguajes de programación se dividen, además de por la especialización, por su grado de aproximación al lenguaje humano. Si son parecidos a éste, se les califica como orientados al usuario, pero sin son más parecidos al lenguaje de las computadoras que al humano, se les califica como orientados a la computadora, o “lenguajes de máquina”.

Los primeros, que generalmente son más fáciles de aprender y usar, requieren de un traductor ya que, al fin y al cabo, la computadora sólo entiende su propio lenguaje, y si esperamos que entienda el nuestro necesitaremos lo mismo que cuando, si no hablamos chino, queremos que un chino nos entienda: un traductor.

El traductor, o “compilador”, no es más que otro programa que traduce a lenguaje de máquina los lenguajes de otro tipo, y que, si bien antes efectuaban su trabajo de traducción en una operación aparte y dedicada sólo a eso, desde principios de los años 60 se les comenzó a almacenar, al igual que los programas que ellos deben traducir, en la memoria de la computadora.

Es común que oigamos decir que ciertos lenguajes ocupan más memoria que otros, pero en realidad es el compilador de ese lenguaje —cada lenguaje necesita su propio compilador— el que ocupa la memoria, pues éste recibe el programa en forma “fuente” (tal y como lo escribió el programador), y lo convierte a forma “objeto” (a lenguaje de máquina), forma ésta que ocupa menos memoria.

Un compilador será tanto más complejo y ocupará tanta más memoria cuanto más parecido al lenguaje humano sea el lenguaje de programación que debe traducir. Y, en general, un programador necesitará menos tiempo, pero usará más memoria de la computadora, cuando programa en un lenguaje orientado al usuario.

Pero hoy día, dada la abundancia de memoria y su bajo precio, las complejidades antes descritas son casi “transparentes” para el programador —o sea, no le causan mayor problema—, pues resulta más barato comprar memoria en abundancia que pagar el tiempo de programación que requeriría el uso de lenguajes de máquina. De aquí que los lenguajes de programación sean cada vez más orientados al usuario, y con comandos que son términos del lenguaje humano común, como podrían ser “Ve a”, “Transfiere”, “Imprime”, “Almacena”.

La ya referida abundancia de memoria permitió que en el ámbito de los lenguajes y compiladores se crearan las macro-instrucciones, que son instrucciones complejas que desatan la ejecución de cientos o miles de instrucciones simples, algo equivalente a cuando entrenamos a un perro para que, p.ej., a nuestra orden de “periódico”,
1) se pare
2) vaya hacia la puerta
3) se alce sobre las patas traseras
4) abra la puerta

5) salga al jardín
6) ubique en qué lugar cayó el periódico esa mañana
7) lo tome con sus mandíbulas
8) y nos lo traiga.

Antes, el programador tenían que ocuparse de dar, una a una y correctamente, estas 8 instrucciones; ahora basta con que use la macro “periódico” porque ya el perro está “programado” para desarrollarla, ejecutando, una a una y en perfecta secuencia, las 8 instrucciones que la componen.

Al igual que el perrito del ejemplo operan las computadoras: sólo obedecen instrucciones. A muy alta velocidad, pero sólo hacen eso. Y si se les da basura (instrucciones o datos erróneos), entregarán basura.

Deja un comentario