Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
UCSD Pascal
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==The p-System== 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 available [[microcomputer]]s as well as campus [[Digital Equipment Corporation|DEC]] [[PDP-11]] [[minicomputer]]s. The operating system became known as UCSD p-System. There were three operating systems that [[IBM]] offered for its original [[IBM Personal Computer|IBM PC]]. The first was UCSD p-System, with [[IBM PC DOS]] and [[CP/M-86]] as the other two.<ref name="williams198201">{{cite news | url=https://archive.org/stream/byte-magazine-1982-01/1982_01_BYTE_07-01_The_IBM_Personal_Computer#page/n37/mode/2up | title=A Closer Look at the IBM Personal Computer | work=BYTE | date=January 1982 | access-date=19 October 2013 | author=Williams, Gregg | pages=36}}</ref> Vendor [[SofTech|SofTech Microsystems]]<ref>{{Cite web|url = http://bitsavers.trailing-edge.com/pdf/softech/Softech_IV_AppleII_Mar83.pdf|title = SOFTECH MICROSYSTEMS UCSD p-SYSTEM VERSION IV FOR THE APPLE II COMPUTER}}</ref> 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;<ref name="edlinbunnell19820203">{{cite news | url=https://books.google.com/books?id=w_OhaFDePS4C&pg=PA42 | title=IBM's New Personal Computer: Taking the Measure / Part One | work=PC Magazine | date=February–March 1982 | access-date=20 October 2013 |author1=Edlin, Jim |author2=Bunnell, David | pages=42}}</ref> advertisements called it "the Universal Operating System".<ref name="byte198208">{{cite news | url=https://archive.org/stream/byte-magazine-1982-08/1982_08_BYTE_07-08_Logo#page/n193/mode/2up | title=This person develops applications for the entire market, including the Z-80, 8080, 8086/8088, 6502, LSI-11/PDP-11, 9900, and the M68000 with the best there is. | work=BYTE | date=August 1982 | access-date=19 October 2013 | author=Advertisement | pages=191, 193–195}}</ref> ''[[PC Magazine]]'' denounced UCSD p-System on the IBM PC, stating in a review of [[Context MBA]], written in the language, that it "simply does not produce good code".<ref name="zachmann198306">{{cite news | url=https://books.google.com/books?id=14Kfbrc6cbAC&pg=PA123 | title=Context MBA: Half A Step In The Right Direction | work=PC Magazine | date=June 1983 | access-date=21 October 2013 | author=Zachmann, Mark S. | pages=123}}</ref> 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 for [[IBM Displaywriter System|IBM Displaywriter]], an [[Intel 8086|8086]]-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 compilable ''[[Unit (Software Development)|Units]]'' and a ''String'' 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 and [[Self-hosting (compilers)|self-hosted]]. UCSD Pascal was based on a [[p-code machine]] architecture. Its contribution to these early [[virtual machines]] was to extend p-code away from its roots as a compiler [[intermediate language]] into a full execution environment.{{clarify|date=October 2010}} 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 the [[Smalltalk]] virtual machine) on the design of the [[Java (programming language)|Java]] virtual machine.<ref>{{cite web |url = http://queue.acm.org/detail.cfm?id=1017013 |title = A Conversation with James Gosling |last = Allman |first = Eric |date = 1 July 2004 |work = [[ACM Queue]] |publisher = [[Association for Computing Machinery]] |access-date = 24 December 2012 }}</ref> UCSD p-System achieved machine independence by defining a [[virtual machine]], called the ''p-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 own [[instruction set]] called p-code (or pseudo-code). Urs Ammann, a student of [[Niklaus Wirth]], originally presented a p-code in his [[PhD]] thesis,<ref>{{Cite journal | last1 = Ammann | first1 = U. | title = On code generation in a PASCAL compiler | doi = 10.1002/spe.4380070311 | journal = Software: Practice and Experience | volume = 7 | issue = 3 | pages = 391–423 | year = 1977 | hdl = 20.500.11850/68668 | s2cid = 2143405 | hdl-access = free }}</ref> 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 the [[Pascal 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<ref>{{Cite web|url = http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Software/Languages/Apple%20II%20FORTRAN/Manuals/Apple%20FORTRAN%20Language%20Reference%20Manual.pdf|title = Apple Fortran Language Reference Manual}}</ref> (written by Silicon Valley Software, Sunnyvale California) producing p-code that ran on the Apple version of the p-system. Later, TeleSoft (also located in [[San Diego]]) offered an early [[Ada (programming language)|Ada]] development environment that used p-code and was therefore able to run on a number of hardware platforms including the [[Motorola 68000]], the [[System/370]], and the [[Pascal MicroEngine]]. UCSD p-System shares some concepts with the later [[Java platform]]. Both use a virtual machine to hide operating system and hardware differences, and both use programs written to that virtual machine to provide [[cross-platform]] support. Likewise both systems allow the virtual machine to be used either as the complete [[operating 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.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
UCSD Pascal
(section)
Add topic