UBL: El Lenguaje de la Universidad de Barcelona |
UBL (Lenguaje de la Universidad de Barcelona) es un lenguaje de programación desarrollado entre 1980 y 1986 por José María Blasco en el Laboratorio de Cálculo (después Centro de Cálculo) de la Universidad de Barcelona. El lenguaje es un derivado parentizado de Pascal con iteradores sintácticos y algunas variaciones más; se disponía de versiones con las palabras clave y funciones predefinidas en castellano, catalán e inglés. Fué usado entre 1983 y 1987 para la asignatura de programación del Curso de Programador en Aplicaciones Científicas (dirigido a Doctores, tesinandos y estudiantes de tercer ciclo) que impartía el Centro de Informática de la Universidad de Barcelona.
Publicaciones
El lenguaje está descrito completamente en:
J. M. BLASCO. Manual del Usuario del Lenguaje UBL. Publicaciones del Centro de Informática de la Universidad de Barcelona. xii+192 pp., Barcelona 1985.
y su aplicación como herramienta para la docencia de la programación fué estudiada en numerosos artículos, entre los que reseñamos algunos:
E. TUBAU, J. M. SOPENA, J. M. BLASCO, N. SEBASTIÁN, G. ALONSO. Valoración Pedagógica de las opciones lingüísticas del lenguaje experimental UBL en la enseñanza de la programación. Actas de las I Jornadas Nacionales sobre Informática en la Enseñanza, Barbastro 11-14 de Julio de 1984, pp. 89-100.
J. M. BLASCO, G. ALONSO. UBL (Lenguaje de la Universidad de Barcelona): un lenguaje para la enseñanza de la programación en castellano. Comunicación presentada en las Jornadas sobre Informática y Educación en la Enseñanza Básica y Media, Madrid, 26-27-28 de Noviembre de 1984.
E. TUBAU, J. M. SOPENA, J. M. BLASCO, N. SEBASTIÁN, G. ALONSO. Aprendizaje de lenguajes de Programación en la propia lengua: experiencia de valoración comparativa. Comunicación presentada en las Jornadas sobre Informática y Educación en la Enseñanza Básica y Media, Madrid, 26-27-28 de Noviembre de 1984.
G. ALONSO, J. M. BLASCO. El projecte UBL (Llenguatge de la Universitat de Barcelona). En Informàtica UB, nº 3, Enero de 1986, pp. 45-51.
Implementaciones
Se conocen dos implementaciones del lenguaje UBL: una para VM/CMS (VM/SP Version
1 Release 3 y posteriores), sistema operativo para mainframes IBM (arquitectura
s/370 y posteriores) desarrollada por José María
Blasco, y una para el IBM PC original (sistema operativo DOS y chip 8086)
desarrollada por Oriol Romeu bajo la dirección de José
María Blasco. La versión para mainframes es la que tuvo más
amplia difusión, y es la que describimos aquí.
El compilador para el lenguaje se obtuvo mediante una larga cadena de procesos
de bootstrap sobre el compilador original de Pascal P4 distribuido por
el ETH de Zurich. El compilador original de Pascal P4 compilaba una variante
de Pascal y generaba pseudocódigo (P-CODE). La distribución incluía
un compilador de Pascal P4 a P-CODE escrito en Pascal P4, un resultado de compilar
el compilador con el compilador (es decir, un compilador escrito en P-CODE),
y una descripción de la semántica del intérprete de P-CODE
escrita en Pascal P4, todo esto en una cinta en formato CDC con bytes de 6 bits.
Una vez leída la cinta (mediante un programa PL/I que declaraba un vector
de BIT(6) UNALIGNED), quedaba el problema de escribir un ensamblador y un intérprete
de P-CODE.
Se eligió una representación binaria para el P-CODE, se escribió
un ensamblador de P-CODE a binario, y un
intérprete optimizado para P-CODE en lenguaje ASSEMBLER/360 sobre DOS/360
(antecesor del VSE) en un IBM s/360 modelo 40 del Laboratorio de Cálculo
de la Universidad de Barcelona. El núcleo del intérprete y las
rutinas de soporte fueron escritas en ASSEMBLER D (por la posibilidad de utilizar
referencias débiles [WXTRN]). Las rutinas de soporte fueron escritas
respetando las convenciones internas del DOS PL/I Optimizing Compiler (descritas
en el correspondiente manual de Execution Logic), para que pudiesen ser probadas
desde el entorno de ejecución de PL/I antes de tener el sistema terminado.
Las primeras rutinas se escribieron con perforadoras de fichas IBM 029 (y algun
modelo posterior); cuando se terminó el intérprete, se disponía
ya de un IBM 4341 con VM/BSEPP, y los ficheros ya eran digitales. Una vez finalizado
el intérprete, y probado el sistema verificando que el proceso de bootstrap
producía el compilador de Pascal P4 a P-CODE en P-CODE sin alteraciones,
se inició la serie de bootstraps para modificar el lenguaje, hasta llegar
a obtener el lenguaje UBL. Finalmente, se escribieron instrucciones de usuario
(en REXX) para encapsular las diferentes instrucciones de sistema necesarias
para utilizar el lenguaje en VM/SP.