Universitat de BarcelonaUBL: 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.