Un conocimiento superficial del lenguaje -saber qué es y para qué sirve- satisface las necesidades culturales de un gran número de personas. Pero los usuarios de las computadoras, aquellos que las emplean en la solución de problemas, requieren conocer con mayor detalle y profundidad las características y ventajas que ofrecen los lenguajes de programación.
Para este propósito se cuenta con una amplia bibliografía que describe con cierto detalle los aspectos generales. Las características particulares de cada compilador -que en una buena medida depende del equipo- se describen en los manuales que preparan los proveedores.
A pesar de que estos manuales representan un apoyo significativo, usualmente resultan incompletos, en vista de abordar de manera superficial algunas características del compilador y en otros casos las omiten o eluden su descripción. Algunas de las veces, las omisiones son deliberadas, ya que los proveedores desean mantener algunas de sus características como secretos comerciales.
Por lo regular, para el usuario el conocimiento del lenguaje es parcial e inexacto, por méritos propios y ajenos. Los vendedores, instructores y maestros adolecen de la misma deficiencia, toda vez que están imposibilitados para subsanar las deficiencias de los manuales e instructivos.
A manera de ejemplo, los libros que describen los movimientos de las piezas del ajedrez son útiles para comprender el juego.
También son útiles las crónicas y análisis de las partidas más notorias de los grandes maestros, pero son insuficientes ya que ningún
tratado puede contemplar y analizar todas las posibilidades que ofrece este juego.
Para un mismo lenguaje hay una gran variedad de compiladores originada por las diferencias en los equipos de las diferentes compañías. Es también notable la gran diversidad en las calidades de los compiladores. Estas diferencias impiden en buena medida producir aplicaciones independientes del equipo y versiones del lenguaje.
Para mitigar esto, algunos lenguajes -Fortran incluído- están definidos a través de normas y estándares, elaborados por comités de proveedores y usuarios que desafortunadamente no resuelven el problema ya que en ellos no están
previstas todas las posibilidades que se pueden presentar. Los compiladores son
elaboraciones demasiado complejas como para que se puedan describir con
fidelidad todas sus características.
Adicionalmente, los compiladores pueden contener errores o presentar interpretaciones equivocadas -accidentales o deliberadas- de los estándares.
Por otra parte, los estándares están descritos en términos más propios de
los abogados que de especialistas en computación o matemáticos.
Llevando las cosas al extremo, les podríamos describir como acuerdos entre
piratas y bandoleros, dispuestos a suscribirlos pero no a cumplirlos y a
regirse por ellos.
La mejor referencia para el compilador, la más fiel, la que no omite
descripción de las características, ni permite interpretaciones
equivocadas, es el listado del programa fuente del compilador.
Como en los ambientes jurídicos, aquí también priva la regla de
la mejor evidencia: no se admite el testimonio de un testigo o un duplicado
como sustituto del contrato o prueba original.
Desafortunadamente, es política de uso corriente de los proveedores de
equipos y programas el ofrecer los programas en binario y nunca los programas
fuente. Estos últimos algunas veces también se pueden adquirir, pero su
precio los hace prohibitivos, en ocasiones equivalentes al del equipo completo.
Las empresas que los producen, cotizan a los programas fuente de un compilador
o de un sistema operativo en varias decenas de miles de dólares como una
medida de evitar la competencia desleal de sus clientes.
Por esta razón, el Instituto de Ciencias de la UAP ha promovido a través
de su participación en la Escuela de Ciencias Físico Matemáticas, que los
usuarios -en este caso los estudiantes universitarios- conozcan todos los
aspectos relacionados con los lenguajes, de manera íntima y profunda y no
exclusivamente con su uso. Aunque es justo decir que en este empeño se ha
obtenido un éxito relativamente parcial. De acuerdo con esta intención, en
el Instituto se han analizado los compiladores de los equipos disponibles,
entre otros, el F80 (Fortran para la 8080), FTN (Fortran para la PDP-8),
Fortran de la IBM-1130, el compilador para ``C'' de BDS, y Alpha-Basic (Basic
para la Alpha-Micro).