Are you sure that "p-code" and "p-machine" comes from "pseudo-machine" and not from "Pascal code"? Seems more likely to me, but I don't have any documentation for it. -- ESP 17:14 14 Jul 2003 (UTC)
- I have seen both myself in various sources. This is a very quick first cut and I intend to check my p-System VII manual to see which UCSD considered official before I finish. -- RTC 17:18 14 Jul 2003 (UTC)
- I believe it means "Portable". In the earliest documents I can find, it is referred to as the "Pascal-P ... portable compiler" (se "Pascal-P implementation notes" in Barrons"). This material, by definition, predates UCSD: it was the implementation that UCSD was based on. --samiam95124 27 May 2005
In the UCSD PASCAL System II.0 User's Manual March 1979, the following items refer to "p-Code" or "p-Machine" using the prefix pseudo.
- Page 1, the 2nd sentence of section 1.1 INTRODUCTION AND OVERVIEW says:
- "This system is highly machine independant since it runs on a pseudo-machine interpreter commonly referred to as the "P-machine"."
- Pages 4 & 5, subsection 1.1.4 AN INTRODUCTION TO THE UCSD PASCAL SYSTEM contains multiple instances of "pseudo-machine".
- Page 247, section 4.9 P-CODE DISASSEMBLER begins:
- "The disassembler reads a standard UCSD code file and outputs symbolic pseudo-assembly (P-Code) along with various statistics..."
The rest of the text just seems to refer to "code" or ".CODE files" without using either pseudo or Pascal as a qualifier. The text does not appear to contain any usage of "Pascal-machine" .
From the above I conclude that UCSD originally used the "p" in "p-Code" and "p-Machine" as an abbreviation for pseudo, not Pascal. I agree that over the years the usage became interchangable and eventually was generally accepted by most users that it was an abbreviation for Pascal (this probably came about because the "p" in "p-System" obviously had to mean Pascal, not pseudo. Although some people that liked to make jokes about the p-System would probably say otherwise.). -- RTC 04:56 15 Jul 2003 (UTC)
Note that p-code on the Western Digital Microengine was executed directly by the microcode of MCP-1600 CPU used in the Microengine.
Note also there were a number of non-public implementations of p-code in microcode for a variety of projects used within the defense industry (can we talk about these??). There were a number of defense projects using unique-to-the-project CPUs. The small effort of writing a p-code interpreter gained those projects the use of UCSD Pascal, which was often a dramatic improvement over existing software.
As an aside - the p-code instruction set bears a strong resemblence to the instruction set of Burroughs "A-Series" machines. At the time UCSD Pascal was developed, the main(?) computer at UCSD was a Burroughs machine. --pbannister 20:40, 27 May 2004 (UTC)
The sentence " Later versions also included additional languages that compiled to the p-code base (for example, Telesoft Pascal, also in San Diego, a licensee of the p-system, ported it to the Motorola 68000)." does not make sense. I suspect that this actually mixes two subjects, that some developers compiled P-code to real machine code and thus bootstrapped the p-system, and the fact that at least one other language besides Pascal, Basic, was also implemented under the p-system. Someone with historical knowledge care to handle that ? --samiam95124 27 May 2005
I have put this in the "Pascal Dialects" catagory, which means that you can find it there with other pascals.--Samiam95124 29 June 2005 02:48 (UTC)
Priority: UCSD Pascal or Ada?
This article UCSD p-System says that the important improvements that UCSD Pascal introduced, variable length strings and "units" of independently compiled code, was "an idea taken from the then-evolving Ada programming language". The article on UCSD Pascal says that these features of UCSD Pascal "influenced the design of the Ada programming language". The Ada programming language article makes no mention of these features. Does anyone know which language deserves credit for priority? Finell 06:19, 2 October 2005 (UTC)