El UCSD Pascal fue un sistema de lenguaje de programación Pascal que corría en el UCSD p-System, un sistema operativo portable, altamente independiente de la máquina. El Instituto para los Sistemas de Información de la Universidad de California en San Diego lo desarrolló en 1978 para proveer a los estudiantes de un sistema operativo común que pudiera correr, tanto en cualquiera de los microcomputadores disponibles, como en los minicomputadores DEC PDP-11 del campus. El UCSD p-System (Versión IV, suministrado por SofTech) era uno de los tres sistemas operativos que IBM ofrecía para su IBM PC original (junto con el PC-DOS y el CP/M-86); pero el p-System nunca se vendió muy bien para el IBM PC, principalmente debido a una carencia de aplicaciones y porque era más costoso que las otras opciones. Antes de eso, IBM usó el UCSD p-System como el sistema operativo para su Displaywriter, una máquina dedicada de procesamiento de textos basada en un microcomputador (no confundirlo con el software de procesamiento de textos DisplayWrite de IBM).
UCSD Pascal | ||
---|---|---|
Desarrollador(es) | ||
Universidad de California en San Diego, SofTech, Pecan | ||
Información general | ||
Apareció en | 1978 | |
Última versión estable | Version IV | |
Implementaciones | Apple II, DEC PDP-11, Zilog Z80, MOS 6502, Motorola 68000, x86, Pascal MicroEngine | |
Influido por | Pascal | |
Sistema operativo | Sistema virtual | |
Notables extensiones al Pascal estándar incluyen Units compilables y el tipo String. Ambas extensiones influenciaron el diseño del lenguaje Ada.[1] Algunas funciones intrínsecas fueron proporcionadas para acelerar el procesamiento de strings (ej. exploración en un arreglo para un patrón de búsqueda particular); otras extensiones del lenguaje fueron proporcionadas para permitir que el UCSD p-System fuera autocompilable (self-compiling) y auto-sostenido (self-hosted).
El UCSD Pascal fue basado en una arquitectura de máquina de p-code (p-code machine). Su contribución a estas tempranas máquinas virtuales fue extender el p-code fuera de sus raíces como lenguaje intermedio de compilador hacia un ambiente completo de ejecución. La p-Machine del UCSD Pascal fue optimizada para los pequeños nuevos microcomputadores con direccionamiento restringido a 16 bits (solamente 64 KB de memoria). James Gosling cita al UCSD Pascal como una influencia clave (junto con la máquina virtual del Smalltalk) en el diseño de la máquina virtual de Java.
El UCSD p-System alcanzaba la independencia de la máquina real definiendo como su OS a una máquina virtual, llamada p-Machine (p-Máquina) (o pseudo-machine (pseudo-máquina), que muchos usuarios comenzaron en llamar la "Pascal-machine" (máquina Pascal), aunque la documentación del USCD siempre usó "pseudo-machine") con su propio conjunto de instrucciones llamado p-code (p-código) (o pseudo-code). Urs Ammann, un estudiante de Niklaus Wirth, originalmente presentó un p-code en su tesis de PhD (ver Urs Aman, On Code Generation in a Pascal Compiler, Software—Practice and Experience, Vol. 7, No. 3, 1977, pp. 391–423), desde el cual fue derivada la implementación del UCSD, la implementación del Zúrich Pascal-P . La implementación del UCSD cambió la implementación Zúrich para ser "orientada a byte". El UCSD p-code fue optimizado para la ejecución del lenguaje de programación Pascal. Entonces, cada plataforma de hardware solamente necesitaba un programa interpretador de p-code escrito para dicha plataforma, para así poder portar el p-System y todas las herramientas para correr en ella. Versiones posteriores también incluyeron lenguajes adicionales que compilaron hacia la base del p-code. Por ejemplo, TeleSoft (también localizado en San Diego) ofreció un temprano entorno de desarrollo de Ada que usó p-code y por lo tanto podía correr en un número de plataformas de hardware incluyendo el Motorola 68000, el System/370, y el Pascal MicroEngine.
El UCSD p-System comparte algunos conceptos con la más actual plataforma Java. Ambas usan una máquina virtual para ocultar diferencias del sistema operativo y del hardware, y ambas usan programas escritos hacia esa máquina virtual para proporcionar soporte de plataforma cruzada. Asimismo ambos sistemas permiten que la máquina virtual sea usada como el sistema operativo completo de la computadora objetivo o correr en una "caja" (in a box) bajo otro sistema operativo.
El compilador del UCSD Pascal fue distribuido como parte de un sistema operativo portable, el p-System.
El UCSD p-System comenzó alrededor 1977 como la idea de Kenneth Bowles del UCSD, quien creyó que el número de nuevas plataformas computacionales que salían en ese entonces haría difícil para que los nuevos lenguajes de programación ganasen aceptación. Basó el UCSD Pascal en el lanzamiento del Pascal-P2 del compilador portable de Zúrich. Él estaba particularmente interesado en Pascal como lenguaje para enseñar programación. El UCSD introdujo dos características que eran mejoras importantes sobre el Pascal original: strings de longitud variable, y "units" de código independientemente compilado (una idea incluida en el lenguaje de programación Ada entonces en desarrollo). Niklaus Wirth acredita al p-System, y al UCSD Pascal en particular, en la popularización del Pascal. No fue hasta el lanzamiento de Turbo Pascal que la versión del UCSD comenzó a declinar del primera lugar entre los usuarios de Pascal.
Había cuatro versiones del motor de UCSD p-code, cada una con varias revisiones del p-System y el UCSD Pascal. Una revisión del motor de p-code (es decir, la p-Machine) significaba un cambio al lenguaje del p-code, y por lo tanto el código compilado no es portable entre diferentes versiones de la p-Machine. Cada revisión fue representada con un número romano indicador, mientras que las revisiones del sistema operativo fueron enumeradas como el número "punto" siguiendo el número romano del p-code. Por ejemplo, II.3 representó la tercera revisión del p-System que funcionaba en la segunda revisión de la p-Machine.