SEP DGIT SEIT
INSTITUTO TECNOLÓGICO DE MINATITLÀN
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
escríta 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 idiome
tenemos que anunciar y reenunciar 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 restrigidos 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 desición se encarga a
algunos programadores de sistemas el trabajo de reescribir 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
diversoso 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 sútil 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. LISPy
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 computadorea. 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 comenterios en lenguaje natural; todos los programadores han enfrentado la experiencia frustante de no poder descifrar algún código que ellos mismos escribieron unas cuantas semanas o meses antes.