Articulo de referencia

Pascal de la UCSD

UCSD Pascal es un sistema de lenguaje de programación Pascal que se ejecuta en el sistema p de UCSD , un sistema operativo portátil y altamente independiente de la máquina . UCS...

UCSD Pascal es un sistema de lenguaje de programación Pascal que se ejecuta en el sistema p de UCSD , un sistema operativo portátil y altamente independiente de la máquina . UCSD Pascal se lanzó por primera vez en 1977 y fue desarrollado en la Universidad de California en San Diego (UCSD).

El sistema p

En 1977, el Instituto de Sistemas de Información de la Universidad de California en San Diego (UCSD) desarrolló UCSD Pascal para proporcionar a los estudiantes un entorno común que pudiera ejecutarse en cualquiera de las microcomputadoras disponibles en ese momento , así como en las minicomputadoras DEC PDP-11 del campus . El sistema operativo pasó a conocerse como UCSD p-System.

IBM ofreció tres sistemas operativos para su IBM PC original : UCSD p-System, CP/M-86 e IBM PC DOS . [ 1 ] El proveedor SofTech Microsystems [ 2 ] enfatizó la portabilidad de aplicaciones de p-System, con máquinas virtuales para 20 CPU en el momento del lanzamiento del IBM PC. Predijo que los usuarios podrían usar las aplicaciones que compraran en futuras computadoras con p-System; [ 3 ] los anuncios lo llamaban "el Sistema Operativo Universal". [ 4 ]

La revista PC Magazine criticó el sistema p-System de la UCSD para la IBM PC, afirmando en una reseña de Context MBA , escrita en el idioma, que «simplemente no produce buen código». [ 5 ] El sistema p-System no tuvo mucho éxito comercial para la IBM PC, debido a la falta de aplicaciones y a su mayor precio en comparación con otras opciones. Anteriormente, IBM había ofrecido el sistema p-System de la UCSD como opción para la IBM Displaywriter , una máquina de procesamiento de textos dedicada basada en el procesador 8086. (El sistema operativo nativo de la Displaywriter se había desarrollado completamente de forma interna y no estaba abierto a la programación del usuario final).

Entre las extensiones más destacadas del estándar Pascal se incluyen unidades compilables por separado y un tipo String . Se proporcionaron algunas funciones intrínsecas para acelerar el procesamiento de cadenas (por ejemplo, escanear una matriz en busca de un patrón de búsqueda específico); también se proporcionaron otras extensiones del lenguaje para permitir que el sistema p de la UCSD se autocompile y se aloje de forma autónoma .

UCSD Pascal se basaba en una arquitectura de máquina de código P. Su contribución a estas primeras máquinas virtuales fue extender el código P, alejándolo de sus orígenes como lenguaje intermedio de compilador y convirtiéndolo en un entorno de ejecución completo. La máquina de código P de UCSD Pascal estaba optimizada para los nuevos microordenadores pequeños, con direccionamiento restringido a 16 bits (solo 64 KB de memoria). James Gosling cita a UCSD Pascal como una influencia clave (junto con la máquina virtual Smalltalk ) en el diseño de la máquina virtual Java . [ 6 ]

El sistema p de la UCSD logró la independencia de la máquina al definir una máquina virtual , llamada p-Machine (o pseudomáquina, que muchos usuarios comenzaron a llamar "máquina Pascal" como el sistema operativo , aunque la documentación de la UCSD siempre usó "pseudomáquina"), con su propio conjunto de instrucciones llamado p-code (o pseudocódigo). Urs Ammann, estudiante de Niklaus Wirth , presentó originalmente un p-code en su tesis doctoral , [ 7 ] del cual se derivó la implementación de la UCSD, la implementación Zurich Pascal-P. La implementación de la UCSD modificó la implementación de Zurich para que fuera "orientada a bytes". El p-code de la UCSD se optimizó para la ejecución del lenguaje de programación Pascal . Cada plataforma de hardware solo necesitaba un programa intérprete de p-code escrito para ella para portar todo el sistema p y todas las herramientas para ejecutarse en ella. Las versiones posteriores también incluyeron lenguajes adicionales que se compilaban a la base de p-code. Por ejemplo, Apple Computer ofreció un compilador de Fortran [ 8 ] (escrito por Silicon Valley Software, Sunnyvale, California) que producía código p que se ejecutaba en la versión de Apple del sistema p. Posteriormente, TeleSoft (también ubicada en San Diego ) ofreció un entorno de desarrollo de Ada primitivo que utilizaba código p y, por lo tanto, podía ejecutarse en varias plataformas de hardware, incluidas Motorola 68000 , System/370 y Pascal MicroEngine .

El sistema p-System de la UCSD comparte algunos conceptos con la plataforma Java posterior . Ambos utilizan una máquina virtual para ocultar las diferencias entre el sistema operativo y el hardware, y ambos emplean programas escritos para dicha máquina virtual con el fin de brindar compatibilidad multiplataforma . Asimismo, ambos sistemas permiten que la máquina virtual se utilice como el sistema operativo completo del equipo de destino o que se ejecute en un entorno virtual bajo otro sistema operativo.

El compilador Pascal de la UCSD se distribuyó como parte de un sistema operativo portátil, el p-System.

Historia

El sistema p de la UCSD comenzó alrededor de 1974 como una idea de Kenneth Bowles de la UCSD , [ 9 ] quien creía que la cantidad de nuevas plataformas informáticas que surgían en ese momento dificultaría la aceptación de nuevos lenguajes de programación. Basó UCSD Pascal en la versión Pascal-P2 del compilador portátil de Zurich. Estaba particularmente interesado en Pascal como lenguaje para enseñar programación. La UCSD introdujo dos características que fueron mejoras importantes con respecto al Pascal original: cadenas de longitud variable y "unidades" de código compilado de forma independiente (una idea incluida en el entonces incipiente lenguaje de programación Ada). Niklaus Wirth atribuye al sistema p, y a UCSD Pascal en particular, la popularización de Pascal. No fue hasta el lanzamiento de Turbo Pascal que la versión de la UCSD comenzó a perder el primer lugar entre los usuarios de Pascal.

El dialecto Pascal de UCSD Pascal surgió del subconjunto de Pascal implementado en Pascal-P2, que no fue diseñado para ser una implementación completa del lenguaje, sino más bien "el subconjunto mínimo que se autocompilaría", para cumplir su función como kit de arranque para compiladores de Pascal. UCSD añadió cadenas de BASIC y varias otras características dependientes de la implementación. Aunque UCSD Pascal posteriormente obtuvo muchas de las demás características del lenguaje Pascal completo, el subconjunto de Pascal-P2 persistió en otros dialectos, en particular en Borland Pascal , que copió gran parte del dialecto de UCSD.

Versiones

Filer, el gestor de archivos

Existían cuatro versiones del motor de código p de UCSD, cada una con varias revisiones del sistema p y de UCSD Pascal. Una revisión del motor de código p (es decir, la máquina p) implicaba un cambio en el lenguaje de código p, por lo que el código compilado no era portable entre las distintas versiones de la máquina p. Cada revisión se representaba con un número romano inicial, mientras que las revisiones del sistema operativo se enumeraban con el número decimal que seguía al número romano del código p. Por ejemplo, II.3 representaba la tercera revisión del sistema p ejecutándose en la segunda revisión de la máquina p.

Versión I

La versión original nunca se distribuyó oficialmente fuera de la Universidad de California en San Diego . Sin embargo, los archivos fuente de Pascal para las versiones I.3 e I.5 se intercambiaban libremente entre los usuarios interesados. En concreto, la revisión del parche I.5a era conocida por ser una de las más estables.

Versión II

Ampliamente distribuido, disponible en muchos microordenadores de la época. Numerosas versiones, incluyendo Apple II ( que finalmente se convirtió en Apple Pascal ) , DEC PDP-11, Intel 8080 , Zilog Z80 y máquinas basadas en MOS 6502 , Motorola 68000 y el IBM PC (la versión II en el PC estaba restringida a un segmento de código de 64K y un segmento de datos de pila/montón de 64K ; la versión IV eliminó el límite del segmento de código, pero costaba mucho más ).

Entre los miembros del proyecto de esta época se encuentran el Dr. Kenneth L Bowles, Mark Allen , Richard Gleaves, Richard Kaufmann, Pete Lawrence, Joel McCormack , Mark Overgaard, Keith Shillington, Roger Sumner y John Van Zandt.

Versión III

Versión personalizada escrita para Western Digital para ejecutarse en su microordenador Pascal MicroEngine . Incluye soporte para procesos paralelos por primera vez.

Versión IV

Versión comercial, desarrollada y vendida por SofTech. Basada en la Versión II; no incluía cambios de la Versión III. No se vendió bien debido a la combinación de su estructura de precios, problemas de rendimiento debido al intérprete de código p y la competencia con los sistemas operativos nativos (sobre los que a menudo se ejecutaba). Después de que SofTech abandonara el producto, fue retomado por Pecan Systems, una empresa relativamente pequeña formada por usuarios y aficionados del p-System. Las ventas se recuperaron un poco, debido principalmente a la estructura de precios razonable de Pecan, pero el p-System y UCSD Pascal perdieron gradualmente el mercado frente a los sistemas operativos y compiladores nativos. Disponible para TI-99/4A equipado con tarjeta de código p, Commodore CBM 8096 , Sage II/IV , HP 9000 y BBC Micro con segundo procesador 6502. [ 10 ]

Uso posterior

El ordenador Corvus Systems utilizaba UCSD Pascal para todo su software de usuario. El "concepto innovador" del sistema operativo Constellation consistía en ejecutar Pascal (de forma interpretativa o compilada) e incluir todo el software común en el manual, para que los usuarios pudieran modificarlo según sus necesidades.

Notas

  1. Morgan, Chris (enero de 1982). "Sobre IBM, sistemas operativos y piedras Rosetta" . BYTE . pág.  6. Consultado el 19 de octubre de 2013 .
  2. "SOFTECH MICROSYSTEMS UCSD p-SYSTEM VERSIÓN IV PARA EL ORDENADOR APPLE II" (PDF) . Archivado del original (PDF) el 7 de junio de 2016. Consultado el 17 de enero de 2016 .
  3. Edlin, Jim; Bunnell, David (febrero-marzo de 1982). "El nuevo ordenador personal de IBM: Tomando las medidas / Primera parte" . PC Magazine . pág. 42. Consultado el 20 de octubre de 2013 . 
  4. Anuncio (agosto de 1982). "Esta persona desarrolla aplicaciones para todo el mercado, incluyendo el Z-80, 8080, 8086/8088, 6502, LSI-11/PDP-11, 9900 y el M68000 con lo mejor que existe" . BYTE . págs. 191, 193–195 . Consultado el 19 de octubre de 2013 . 
  5. Zachmann, Mark S. (junio de 1983). "Context MBA: medio paso en la dirección correcta" . PC Magazine . pág. 123. Consultado el 21 de octubre de 2013 . 
  6. Allman, Eric (1 de julio de 2004). "Una conversación con James Gosling" . ACM Queue . Association for Computing Machinery . Recuperado el 24 de diciembre de 2012 .
  7. Ammann, U. (1977). "Sobre la generación de código en un compilador PASCAL". Software: Practice and Experience . 7 (3): 391– 423. doi : 10.1002/spe.4380070311 . hdl : 20.500.11850/68668 . S2CID 2143405 . 
  8. "Manual de referencia del lenguaje Apple Fortran" (PDF) .
  9. Bowles, Ken (22 de octubre de 2004). "Algunas ideas para la generación de Pascal en UCSD" . Archivado del original el 4 de marzo de 2016. Recuperado el 13 de febrero de 2011. Las unidades Pascal de UCSD probablemente influyeron en los paquetes Ada.
  10. Maher, John (enero de 1985). "Sistema Pascal de Acornsoft para la UCSD" . Beebug . págs. 7–10 . Consultado el 2 de julio de 2024 . 

Lecturas adicionales

  • Foster, Christine (septiembre de 2004). "UCSD Pascal y la revolución de la PC" . @UCSD . 1 (3). San Diego: Asociación de exalumnos de la UCSD. Archivado del original el 6 de marzo de 2012.
  • Hyde, Randall (1983). p-Source (Guía del sistema Apple Pascal) . Datamost . ISBN 0881900044.
  • McMillan, William W. (julio de 2011). "El alma de la máquina virtual" . IEEE Spectrum . 48 (7). IEEE : 44–49 , 58–59 . doi : 10.1109/mspec.2011.5910448 . ISSN 0018-9235 . S2CID 40545952 .  {{cite journal}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  • A fecha de mayo de 2006 La UCSD ha publicado partes del sistema p escritas antes del 1 de junio de 1979 para uso no comercial. (Nota: La página web cambia el tamaño de la ventana del navegador).
  • Reunión de exalumnos de Pascal de la UCSD : Presentaciones y vídeos de la reunión celebrada en la UCSD el 22 de octubre de 2004.
  • Presentación de PowerPoint y vídeo de "¿Qué demonios era UCSD Pascal?", presentados en la reunión de 2004. La presentación se archivó el 3 de mayo de 2020 en Wayback Machine y el vídeo se archivó el 26 de agosto de 2011 en Wayback Machine.
  • ucsd-psystem-os Archivado el 24/02/2011 en Wayback Machine , código fuente compilable de forma cruzada para la versión II.0 del sistema p de la UCSD.
  • ucsd-psystem-vm , una máquina virtual portátil para el código p del sistema p de la UCSD.
  • Reconstrucción del manual de usuario del sistema Pascal II.0 de la UCSD, archivado el 22 de agosto de 2011 en la Wayback Machine.
  • Desmontador del sistema P de Softech
  • Museo del Sistema P de la UCSD dentro del Museo de Computación Jefferson.
  • Sistema P de la UCSD archivado el 6 de mayo de 2014 en la Wayback Machine en Pascal para máquinas pequeñas.