This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "UCSD Pascal" – news ·newspapers ·books ·scholar ·JSTOR(July 2011) (Learn how and when to remove this message) |
![]() Logo of Version IV | |
Developer | University of California, San Diego,SofTech, Pecan |
---|---|
OS family | p-codeoperating systems |
Working state | Historic |
Initial release | August 1977; 47 years ago (1977-08) |
Latest release | IV.2.2 R1.1 / December 1987; 37 years ago (1987-12) |
Available in | English |
Platforms | Apple II,DECPDP-11,Intel 8080,Zilog Z80,MOS 6502,Motorola 68000,x86,Osborne Executive,Pascal MicroEngine,TI 99/4A,BBC Micro |
Kernel type | p-codevirtual machine |
UCSD Pascal is aPascal programming language system that runs on theUCSD p-System, a portable, highly machine-independentoperating system. UCSD Pascal was first released in 1977. It was developed at theUniversity of California, San Diego (UCSD).
In 1977, the University of California, San Diego (UCSD) Institute for Information Systems developed UCSD Pascal to provide students with a common environment that could run on any of the then availablemicrocomputers as well as campusDECPDP-11minicomputers. The operating system became known as UCSD p-System.
There were three operating systems thatIBM offered for its originalIBM PC. The first was UCSD p-System, withIBM PC DOS andCP/M-86 as the other two.[1] VendorSofTech Microsystems[2] emphasized p-System's application portability, with virtual machines for 20 CPUs as of the IBM PC's release. It predicted that users would be able to use applications they purchased on future computers running p-System;[3] advertisements called it "the Universal Operating System".[4]
PC Magazine denounced UCSD p-System on the IBM PC, stating in a review ofContext MBA, written in the language, that it "simply does not produce good code".[5] The p-System did not sell very well for the IBM PC, because of a lack of applications and because it was more expensive than the other choices. Previously, IBM had offered the UCSD p-System as an option forIBM Displaywriter, an8086-based dedicated word processing machine. (The Displaywriter's native operating system had been developed completely internally and was not opened for end-user programming.)
Notable extensions to standard Pascal include separately compilableUnits and aString type. Some intrinsics were provided to accelerate string processing (e.g. scanning in an array for a particular search pattern); other language extensions were provided to allow the UCSD p-System to be self-compiling andself-hosted.
UCSD Pascal was based on ap-code machine architecture. Its contribution to these earlyvirtual machines was to extend p-code away from its roots as a compilerintermediate language into a full execution environment.[clarification needed] The UCSD Pascal p-Machine was optimized for the new small microcomputers with addressing restricted to 16-bit (only 64 KB of memory).James Gosling cites UCSD Pascal as a key influence (along with theSmalltalk virtual machine) on the design of theJava virtual machine.[6]
UCSD p-System achieved machine independence by defining avirtual machine, called thep-Machine (or pseudo-machine, which many users began to call the "Pascal-machine" like the OS—although UCSD documentation always used "pseudo-machine") with its owninstruction set called p-code (or pseudo-code). Urs Ammann, a student ofNiklaus Wirth, originally presented a p-code in hisPhD thesis,[7] from which the UCSD implementation was derived, the Zurich Pascal-P implementation. The UCSD implementation changed the Zurich implementation to be "byte oriented". The UCSD p-code was optimized for execution of thePascal programming language. Each hardware platform then only needed a p-code interpreter program written for it to port the entire p-System and all the tools to run on it. Later versions also included additional languages that compiled to the p-code base. For example, Apple Computer offered a Fortran Compiler[8] (written by Silicon Valley Software, Sunnyvale California) producing p-code that ran on the Apple version of the p-system. Later, TeleSoft (also located inSan Diego) offered an earlyAda development environment that used p-code and was therefore able to run on a number of hardware platforms including theMotorola 68000, theSystem/370, and thePascal MicroEngine.
UCSD p-System shares some concepts with the laterJava platform. Both use a virtual machine to hide operating system and hardware differences, and both use programs written to that virtual machine to providecross-platform support. Likewise both systems allow the virtual machine to be used either as the completeoperating system of the target computer or to run in a "box" under another operating system.
The UCSD Pascal compiler was distributed as part of a portable operating system, the p-System.
UCSD p-System began around 1974 as the idea of UCSD'sKenneth Bowles,[9] who believed that the number of new computing platforms coming out at the time would make it difficult for new programming languages to gain acceptance. He based UCSD Pascal on the Pascal-P2 release of the portablecompiler from Zurich. He was particularly interested inPascal as a language to teach programming. UCSD introduced two features that were important improvements on the original Pascal: variable length strings, and "units" of independently compiled code (an idea included into the then-evolving Ada (programming language)). Niklaus Wirth credits the p-System, and UCSD Pascal in particular, with popularizing Pascal. It was not until the release ofTurbo Pascal that UCSD's version started to slip from first place among Pascal users.
The Pascal dialect of UCSD Pascal came from the subset of Pascal implemented in Pascal-P2, which was not designed to be a full implementation of the language, but rather "the minimum subset that would self-compile", to fit its function as a bootstrap kit for Pascal compilers. UCSD added strings from BASIC, and several other implementation dependent features. Although UCSD Pascal later obtained many of the other features of the full Pascal language, the Pascal-P2 subset persisted in other dialects, notablyBorland Pascal, which copied much of the UCSD dialect.
There were four versions of UCSD p-code engine, each with several revisions of the p-System and UCSD Pascal. A revision of the p-code engine (i.e., the p-Machine) meant a change to the p-code language, and therefore compiled code is not portable between different p-Machine versions. Each revision was represented with a leading Roman Numeral, while operating system revisions were enumerated as the "dot" number following the p-code Roman Numeral. For example, II.3 represented the third revision of the p-System running on the second revision of the p-Machine.
Original version, never officially distributed outside of theUniversity of California, San Diego. However, the Pascal sources for both Versions I.3 and I.5 were freely exchanged between interested users. Specifically, the patch revision I.5a was known to be one of the most stable.
Widely distributed, available on many early microcomputers. Numerous versions includedApple II ultimatelyApple Pascal, DEC PDP-11,Intel 8080,Zilog Z80, andMOS 6502 based machines, Motorola 68000 and theIBM PC (Version II on the PC was restricted to one 64Kcode segment and one 64K stack/heapdata segment; Version IV removed the code segment limit but cost a lot more[quantify]).
Project members from this era include Dr Kenneth L Bowles,Mark Allen, Richard Gleaves, Richard Kaufmann, Pete Lawrence,Joel McCormack, Mark Overgaard, Keith Shillington, Roger Sumner, and John Van Zandt.
Custom version written forWestern Digital to run on their Pascal MicroEngine microcomputer. Included support for parallel processes for the first time.
Commercial version, developed and sold by SofTech. Based on Version II; did not include changes from Version III. Did not sell well due to combination of their pricing structure, performance problems due to p-code interpreter, and competition with native operating systems (on top of which it often ran). After SofTech dropped the product, it was picked up by Pecan Systems, a relatively small company formed of p-System users and fans. Sales revived somewhat, due mostly to Pecan's reasonable pricing structure, but the p-System and UCSD Pascal gradually lost the market to native operating systems and compilers. Available for theTI-99/4A equipped with p-code card,Commodore CBM 8096, Sage IV,HP 9000, andBBC Micro with 6502 second processor.[10]
TheCorvus Systems computer used UCSD Pascal for all its user software. The "innovative concept" of the Constellation OS was to run Pascal (interpretively or compiled) and include all common software in the manual, so users could modify as needed.
UCSD Pascal Units probably influenced Ada Packages