UCSD Pascal
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).

Notables extensiones al Pascal estándar incluyen Units compilables y el tipo String. Ambas extensiones influenciaron el diseño del lenguaje Ada.
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.
Q9143
lenguaje de programación
Concept
Q81571
Pascal
Concept
Q9135
sistema operativo
Concept
Q622664
Universidad de California en San Diego
ORG
Q9135
sistema operativo
Concept
Q32738
microcomputador
Concept
Q185131
minicomputador
Concept
Q690079
DEC
ORG
Q1327833
PDP-11
MISC
Q622664
UCSD
ORG
Q37156
IBM
ORG
Q202712
IBM PC
MISC
Q863568
PC-DOS
MISC
Q2706791
CP/M-86
MISC
None
Displaywriter
UNK
Q54277
procesamiento de textos
Concept
Q32738
microcomputador
Concept
None
DisplayWrite
UNK
Q154755
Ada
MEDIA
None
funciones intrínsecas
UNK
Q184754
strings
Concept
Q186152
arreglo
Concept
None
máquina de p-code
UNK
Q192726
máquinas virtuales
Concept
Q8805
bit
Concept
Q92622
James Gosling
PER
Q235086
Smalltalk
MEDIA
Q251
Java
Concept
Q192726
máquina virtual
Concept
Q272683
conjunto de instrucciones
Concept
None
p-code
UNK
Q92604
Niklaus Wirth
PER
Q752297
PhD
Concept
Q81571
lenguaje de programación Pascal
Concept
Q3966
hardware
Concept
Q183065
interpretador
Concept
Q667808
Motorola 68000
MISC
Q1586139
System/370
Concept
None
Pascal MicroEngine
UNK
Q1713118
plataforma Java
MISC
Q176984
UCSD Pascal
MEDIA
Q176984
UCSD Pascal
MEDIA
Q176984
UCSD Pascal
MEDIA
Q176984
UCSD Pascal
MEDIA
Q176984
UCSD Pascal
MEDIA
+1978^^http://www.w3.org/2001/XMLSchema#decimal
1978
NUMBER
-11^^http://www.w3.org/2001/XMLSchema#decimal
-11
NUMBER
-86^^http://www.w3.org/2001/XMLSchema#decimal
-86
NUMBER
+16^^http://www.w3.org/2001/XMLSchema#decimal
16
NUMBER
+64^^http://www.w3.org/2001/XMLSchema#decimal
64
NUMBER
+7^^http://www.w3.org/2001/XMLSchema#decimal
7
NUMBER
+3^^http://www.w3.org/2001/XMLSchema#decimal
3
NUMBER
+1977^^http://www.w3.org/2001/XMLSchema#decimal
1977
NUMBER
+391^^http://www.w3.org/2001/XMLSchema#decimal
391
NUMBER
+423^^http://www.w3.org/2001/XMLSchema#decimal
423
NUMBER
+68000^^http://www.w3.org/2001/XMLSchema#decimal
68000
NUMBER
+370^^http://www.w3.org/2001/XMLSchema#decimal
370
NUMBER
instance of
instance of
developer
instance of
developer
platform
instance of
instance of
manufacturer
manufacturer
operating system
developer
notable work
designed by
influenced by
influenced by