LENGUAJE NATURAL Y ARTIFICIAL

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.

Fondo 2000 Índice Anterior Nivel anterior Siguiente