UCSD Pascal

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) français (fr)


UCSD Pascal was the first minicomputer and microcomputer implementation of the Pascal programming language. Developed at the University of California, San Diego, under the direction of Kenneth Bowes, it implemented a number of significant improvements to the standard Pascal language, including

  • Separate compilation of programs by use of the unit directive.
  • Implementation of a means to distinguish between disk files and screen files, so that interactive applications could be developed.
  • On-screen compilation including an interactive editor such that indications of errors in the program detected by the compiler could be transferred back to the editor to allow the exact line that the error occurred on to be highlighted, along with the precise error message.
  • Variable length strings, including procedures to handle them.

UCSD Pascal was implemented on

  • Terak computer system, which used the PDP-11 processor and a bit-mapped screen similar to the original Apple Macintosh computer.
  • The Apple II with the 80-character video card.
  • The IBM-PC.
  • The Texas Instruments TI 99/4A, which used the TMS 9900 processor.

UCSD Pascal compiled to P-Code that was executed by a virtual machine (similar to Java byte-code and the JVM). The compiler and virtual machine ran on the UCSD p-System operating system which had its own file format for its disk directories, different from any other microcomputer operating system file format at the time, as it handled filenames longer than the then-standard 6 + 3, and later 8 + 3 formats, and also could handle filenames containing one or more blanks.

Most of the operating system was itself written in UCSD Pascal, apart from the machine-dependent parts. To make this possible, UCSD Pascal was also expanded with some features, mainly aimed at system programmers

  • Handling of untyped data.
  • Access to untyped files, as well as the ability to read and write blocks directly on a disk.
  • Concurrent processes.

Source code

Version I.5 of UCSD Pascal is nowadays available under a non-commercial open source license. The source code of this version can be found on the Free Pascal ftp site at ftp://ftp.freepascal.org/pub/fpc/attic/ucsd-pascal

Various Pascal Compilers:
AAEC Pascal | Alice Pascal | Apple Pascal | Borland Pascal | Clascal | Delphi | Free Pascal (FPC) | GNU Pascal | Kylix | Lisa Pascal | Mac Pascal | Metrowerks Pascal | NBS Pascal | OMSI Pascal | P32 | Sibyl | Smart Pascal | Stanford Pascal Compiler | Swedish Pascal | THINK Pascal | Turbo Pascal | UCSD Pascal | VAX Pascal | Virtual Pascal | winsoft PocketStudio
An extensive list of compilers is maintained at Pascaland.