| 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 | |
ElUCSD Pascal fue un sistema delenguaje de programaciónPascal que corría en elUCSD p-System, unsistema operativo portable, altamente independiente de la máquina. El Instituto para los Sistemas de Información de laUniversidad de California en San Diego lo desarrolló en 1978 para proveer a los estudiantes de unsistema operativo común que pudiera correr, tanto en cualquiera de losmicrocomputadores disponibles, como en losminicomputadoresDECPDP-11 del campus. ElUCSD p-System (Versión IV, suministrado por SofTech) era uno de los tres sistemas operativos queIBM ofrecía para suIBM PC original (junto con elPC-DOS y elCP/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 suDisplaywriter, una máquina dedicada deprocesamiento de textos basada en unmicrocomputador (no confundirlo con el software de procesamiento de textosDisplayWrite de IBM).
Notables extensiones al Pascal estándar incluyen Units compilables y el tipo String. Ambas extensiones influenciaron el diseño del lenguajeAda.[1]Algunasfunciones intrínsecas fueron proporcionadas para acelerar el procesamiento destrings (ej. exploración en unarreglo 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 demáquina de p-code (p-code machine). Su contribución a estas tempranasmá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 16bits (solamente 64 KB de memoria).James Gosling cita al UCSD Pascal como una influencia clave (junto con la máquina virtual delSmalltalk) en el diseño de la máquina virtual deJava.
El UCSD p-System alcanzaba la independencia de la máquina real definiendo como su OS a unamá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 propioconjunto de instrucciones llamadop-code (p-código) (o pseudo-code). Urs Ammann, un estudiante deNiklaus Wirth, originalmente presentó un p-code en su tesis dePhD (verUrs 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 dellenguaje de programación Pascal. Entonces, cada plataforma dehardware solamente necesitaba un programainterpretador 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 elMotorola 68000, elSystem/370, y elPascal MicroEngine.
El UCSD p-System comparte algunos conceptos con la más actualplataforma 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 deKenneth 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 delcompilador portable de Zúrich. Él estaba particularmente interesado enPascal 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 deTurbo 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.