Hablar de "lenguaje" de computación es hablar metafóricamente, aunque se trata de una metáfora que agoniza a fuerza de ser usada. Aun aquellos que nunca han estado cerca de una computadora han oído hablar de FORTRAN, COBOL
o PASCAL
y saben que se trata de lenguajes crípticos por medio de los cuales se habla a la máquina. FORTRAN
(el nombre abrevia "Formula Translator"), PASCAL,
y los demás no son, obviamente, lenguajes vivos. Los programadores se dan cuenta de esto cuando distinguen entre lenguajes artificiales o programación y lenguajes "naturales" como el español y el inglés. En sí, la palabra "artificial" nos dice algo sobre el plan del programador. Aunque el español o cualquier otro idioma son también producto de artificio, su creación a lo largo de siglos no fue plenamente consciente y racional como ha sido la creación de lenguajes de programación.
Los lenguajes de programación no se hablan, lo cual significa también una gran
diferencia. Su fin no es que se entiendan en la comunicación oral, ya que las
computadoras actuales casi no toman en cuenta las ondas sonoras. Pero aún suponiendo
que fuera posible hablar a una computadora (lo cual es completamente concebible),
muy pocos programadores estarían dispuestos a dialogar en FORTRAN .
En
este terreno resulta exacta la imagen que nos da la ficción científica. Cuando
los humanos hablan a su robots y a sus cerebros electrónicos lo hacen más o
menos en algún idioma, pero omitiendo con frecuencia artículos y otras palabras
pequeñas con lo cual sugieren la preferencia de la computadora al reducir el
lenguaje o la osamenta desnuda de la lógica. Hablar en FORTRAN
sería
tan difícil como hablar en álgebra porque la relación que estos códigos establecen
entre sus símbolos sólo se puede captar cuando se presenta especialmente y es
examinada con la vista. El ojo puede examinar un renglón varias veces para desentrañar
su significado o saltarse diez renglones para comprobar la definición o el uso
de un símbolo. Para casi todos nosotros, una versión hablada de un enunciado
FORTRAN
desaparece en el momento mismo en que se pronuncia. Aun
dos programadores muy diestros deberían sentarse ante una versión escrita si
es que quieren analizar un programa. esto mismo es aplicable a los matemáticos
y a sus ecuaciones; sorprende en verdad enterarnos de que un matemático ciego
de la talla de Euler haya podido visualizar sus pruebas sin la ayuda del papel.
El lenguaje natural opera de un modo diferente: evolucionó hasta hacerse plenamente
inteligible en palabras debido a que el lenguaje hablado precedió milenios al
escrito. Es muy redundante, a diferencia de la buena programación de las computadoras.
Es español o en cualquier otro idioma tenemos que anunciar y renunciar las ideas
para hacerlas entender; no asignamos un símbolo unívoco a cada idea y no esperamos
que nuestros interlocutores lo recuerden durante el resto de nuestra conversación.
FORTRAN
tiene usos mucho más restringidos que los lenguajes comunes.
No sirve para expresar emociones ni muchas percepciones razonadas, sino tan
sólo una estrecha gama de problemas definidos lógicamente. Por otra parte los
lenguajes de programación no evolucionan del mismo modo irrestricto que los
lenguajes naturales; estos lenguajes están en un flujo constante: conforme algunas
palabras caen en desuso, otras se vuelven populares y de moda. La gramática
cambia, y la pronunciación varía de una región a otra, de un grupo de hablantes
a otro y con el transcurso del tiempo. La mayoría de estos cambios no son planeados
y casi siempre desalientan al establecimiento literario. Los cambios, en especial
en pronunciación, son inconscientes en la mayoría de los hablantes, por lo que
son democráticos en el mejor sentido también en el peor; se trata de un proceso
caótico en el cual el cambio colectivo es la suma de millones de idiosincrasias.
Las reformas al lenguaje por órdenes de comités casi siempre van al fracaso,
sin embargo, el hebreo moderno es quizá una excepción.
En cambio, los lenguajes de computación cambian precisamente de un modo autocrático:
por decreto de la administración. El programador no es libre de modificar FORTRAN
según sus gustos porque cualquier desviación de la rígida sintaxis en uso hará
que su programa falle. Los cambios nunca son espontáneos. Un grupo de programadores,
inconforme con los aspectos pequeños del lenguaje, agitará para lograr reformas
en su centro de computación. La reforma se presenta ante la administración del
centro, y en cuanto se llega a una decisión se encarga a algunos programadores
de sistemas el trabajo de rescribir el programa que controla a FORTRAN.
Reformas de más fuste se necesitarán para adaptar un lenguaje a una nueva
línea de máquinas. Debido a la anarquía institucional de comités, cada lenguaje
de computación crea sus dialectos conforme se propaga en los diversos países.
No tardan en existir muchas versiones competidoras, no del todo compatibles
una con otra, pero reconociblemente son del mismo lenguaje.
Los lenguajes de computación, al igual que los naturales, se pueden agrupar
en familias. El abuelo indoeuropeo del lenguaje electrónico es FORTRAN:
de él han descendido PL/I
y el lenguaje comercial COBOL;
ambos refinan su sintaxis para satisfacer sus mutuas necesidades. Otros
grupos de lenguajes más exóticos empiezan con otros principios sintácticos.
Todos los lenguajes de propósitos generales tienen más o menos el mismo poder:
lo que se puede programar en uno cabe hacerlo en los otros, debido a que todos
ellos son en el fondo instrucciones para construir una máquina de Turing. Sin
embargo, cada lenguaje tiene su propio colorido, que refleja la filosofía con
base en la cual fue ideado. FORTRAN
(que ya tiene bastante más
de veinte años, lo cual es una longevidad notable para un programa de computación)
sigue siendo la cosa que más se acerca a una lingua franca: es directo,
no particularmente sutil y es idioma propio de la ingeniería. ALGOL
es un idioma europeo elegante que usan los especialistas cuando describen algoritmos
en revistas; PASCAL
es su primo más joven. PL/I
es
un lenguaje que tiende a extenderse, que busca proporcionar todos los elementos
que puede necesitar cualquier programador (científico, ingeniero u hombre de
negocios); como trata de satisfacer a todo el mundo, no satisface a nadie. LISP
y APL
son lenguajes concisos y bellamente lógicos, populares entre
aquellos ( como son los especialistas en inteligencia artificial) que quieren
destacar la derivación de la programación de computadoras partiendo de la lógica
simbólica.
Los hombres de letras solían hablar en términos generales de los lenguajes naturales como vehículos de expresión de la calidad recia y filosófica del alemán, de la delicadeza del francés, de la claridad del latín, etc. Sin duda, un sentimiento de estilo entra en la elección de un lenguaje de programación como en la estructura del propio programa. Los programadores de computación, al igual que los matemáticos buscan y destacan la elegancia de su trabajo. Hay programas hechos sólo para ejecutar otros que han sido pulidos con el fin de hacerlos no solamente más eficientes sino también de lectura más fácil y de modificación más sencilla.
Los programas se escriben para dos clases muy diferentes de lectores: el individuo que los ejecuta y las demás personas que tal vez necesiten leerlos y revisarlos. Para este segundo grupo el programador inserta comentarios en lenguaje natural, espacia las instrucciones y se esfuerza porque el programa sea tan directo como sea posible. Los diseñadores se esfuerzan continuamente por lograr que los lenguajes de programación sean más naturales y más accesibles a los legos, por razones no sólo económicas sino también técnicas; al mundo de los negocios le agradaría mucho prescindir de los programadores y poder poner a sus propios empleados y ejecutivos en estrecho contacto con sus computadoras. Sigue siendo un hecho inevitable que los lenguajes actuales de programación son más bien códigos que lenguajes naturales: los humanos deben ir al encuentro de la máquina mucho más allá del punto medio. La computadora retiene gran parte de su misterio precisamente porque su medio de comunicación es un código, difícil de descifrar y más difícil aún de recordar. Los lenguajes de computación escritos por un especialista son casi siempre ilegibles por otro si no hay amplios comentarios en lenguaje natural; todos los programadores han enfrentado la experiencia frustrante de no poder descifrar algún código que ellos mismos escribieron unas cuantas semanas o meses antes.
![]() |
![]() |
![]() |
![]() |
![]() |