470:. 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 (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
36:
143:
642:
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 the
550:
557:
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
536:
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
528:
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
641:
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
389:, written in the language, that it "simply does not produce good code". 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
376:
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; advertisements called it "the
Universal Operating System".
558:
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.
670:
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.
465:
thesis, 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
410:
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
520:, 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 portable
537:
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, notably
338:
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
890:
1158:
570:. 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.
397:-based dedicated word processing machine. (The Displaywriter's native operating system had been developed completely internally and was not opened for end-user programming.)
430:
into a full execution environment. The UCSD Pascal p-Machine was optimized for the new small microcomputers with addressing restricted to 16-bit (only 64 KB of memory).
1518:
1151:
453:(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
761:"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"
1144:
1523:
689:
497:. Both use a virtual machine to hide operating system and hardware differences, and both use programs written to that virtual machine to provide
1372:
969:
824:
567:
327:
158:
1126:
119:
908:
1448:
614:
760:
1254:
1199:
1002:
57:
1478:
1259:
1184:
1167:
525:
344:
315:
248:
100:
1248:
1214:
72:
53:
478:
development environment that used p-code and was therefore able to run on a number of hardware platforms including the
1402:
467:
439:
402:
209:
1528:
1472:
1443:
475:
79:
46:
1533:
1387:
294:
1412:
412:
390:
715:
633:
to run on their Pascal MicroEngine microcomputer. Included support for parallel processes for the first time.
86:
1392:
1377:
1299:
1013:
427:
361:
68:
1176:
1090:
1430:
1397:
1273:
1047:
872:
487:
279:
1070:
981:
508:
The UCSD Pascal compiler was distributed as part of a portable operating system, the p-System.
1244:
1209:
1086:
1039:
998:
787:
275:
733:
1496:
1335:
1294:
1073:
written before June 1, 1979, for non-commercial use. (Note: Webpage resizes browser window.)
1031:
912:
862:
854:
502:
423:
323:
271:
234:
229:
176:
1123:
501:
support. Likewise both systems allow the virtual machine to be used either as the complete
1130:
938:
630:
454:
446:
303:
93:
1315:
667:
618:
578:
Widely distributed, available on many early microcomputers. Numerous versions included
538:
517:
498:
479:
419:
300:
267:
173:
1079:, Presentations and Videos from a UCSD Pascal Reunion held at UCSD on October 22, 2004
1512:
1422:
1325:
1279:
1194:
1189:
1136:
1018:
647:
529:
UCSD Pascal in particular, with popularizing Pascal. It was not until the release of
494:
458:
431:
340:
162:
1051:
1407:
1330:
1320:
1107:
1095:
876:
607:
603:
583:
530:
350:
1350:
1117:
1269:
1219:
386:
381:
35:
1112:
1035:
1382:
1345:
1284:
1082:
867:
587:
483:
394:
365:
255:
153:
1085:
and Video of "What the Heck was UCSD Pascal?," presented at the 2004 reunion
1043:
814:
17:
1264:
819:
655:
591:
505:
of the target computer or to run in a "box" under another operating system.
471:
435:
287:
259:
858:
142:
1490:
1484:
1466:
1229:
1101:
994:
716:"SOFTECH MICROSYSTEMS UCSD p-SYSTEM VERSION IV FOR THE APPLE II COMPUTER"
643:
595:
579:
533:
that UCSD's version started to slip from first place among Pascal users.
521:
283:
263:
244:
1289:
1204:
1076:
651:
621:, Mark Overgaard, Keith Shillington, Roger Sumner, and John Van Zandt.
373:
369:
1055:
599:
347:
251:
400:
Notable extensions to standard Pascal include separately compilable
1460:
610:; Version IV removed the code segment limit but cost a lot more).
548:
326:. UCSD Pascal was first released in 1977. It was developed at the
1098:, cross-compilable source code for the UCSD p-System version II.0
1027:
549:
1140:
1364:
845:
Ammann, U. (1977). "On code generation in a PASCAL compiler".
566:
Original version, never officially distributed outside of the
462:
385:
denounced UCSD p-System on the IBM PC, stating in a review of
357:
29:
734:"IBM's New Personal Computer: Taking the Measure / Part One"
1108:
A reconstruction of the UCSD Pascal System II.0 User Manual
613:
Project members from this era include Dr
Kenneth L Bowles,
445:
UCSD p-System achieved machine independence by defining a
457:
called p-code (or pseudo-code). Urs Ammann, a student of
980:(3). San Diego: UCSD Alumni Association. Archived from
426:
was to extend p-code away from its roots as a compiler
516:
UCSD p-System began around 1974 as the idea of UCSD's
353:. The operating system became known as UCSD p-System.
1104:, a portable virtual machine for UCSD p-System p-code
434:
cites UCSD Pascal as a key influence (along with the
617:, Richard Gleaves, Richard Kaufmann, Pete Lawrence,
1421:
1363:
1308:
1237:
1228:
1175:
293:
240:
228:
208:
190:
182:
169:
152:
60:. Unsourced material may be challenged and removed.
925:UCSD Pascal Units probably influenced Ada Packages
732:Edlin, Jim; Bunnell, David (February–March 1982).
493:UCSD p-System shares some concepts with the later
788:"Context MBA: Half A Step In The Right Direction"
602:(Version II on the PC was restricted to one 64K
524:from Zurich. He was particularly interested in
422:architecture. Its contribution to these early
1152:
991:p-Source (A Guide to the Apple Pascal System)
8:
690:"A Closer Look at the IBM Personal Computer"
135:
1234:
1159:
1145:
1137:
909:"Some Insights for UCSD Pascal Generation"
134:
891:"Apple Fortran Language Reference Manual"
866:
541:, which copied much of the UCSD dialect.
322:, a portable, highly machine-independent
120:Learn how and when to remove this message
356:There were three operating systems that
27:1977 programming language implementation
1519:Pascal (programming language) compilers
680:
598:based machines, Motorola 68000 and the
461:, originally presented a p-code in his
438:virtual machine) on the design of the
7:
1120:within the Jefferson Computer Museum
968:Foster, Christine (September 2004).
364:. The first was UCSD p-System, with
58:adding citations to reliable sources
970:"UCSD Pascal and the PC Revolution"
825:Association for Computing Machinery
815:"A Conversation with James Gosling"
568:University of California, San Diego
328:University of California, San Diego
159:University of California, San Diego
1012:McMillan, William W. (July 2011).
25:
1071:released portions of the p-System
1014:"The Soul of the Virtual Machine"
847:Software: Practice and Experience
939:"Acornsoft's UCSD Pascal System"
688:Williams, Gregg (January 1982).
214:IV.2.2 R1.1 / December 1987
141:
34:
1449:Comparison of Pascal and Delphi
907:Bowles, Ken (22 October 2004).
786:Zachmann, Mark S. (June 1983).
45:needs additional citations for
1524:Discontinued operating systems
1069:As of May 2006, UCSD has
1:
1113:Softech P-System disassembler
759:Advertisement (August 1982).
1133:at Pascal for Small Machines
937:Maher, John (January 1985).
813:Allman, Eric (1 July 2004).
658:with 6502 second processor.
1168:Pascal programming language
646:equipped with p-code card,
629:Custom version written for
468:Pascal programming language
418:UCSD Pascal was based on a
316:Pascal programming language
216:; 36 years ago
196:; 47 years ago
1550:
1444:Comparison of Pascal and C
1036:10.1109/mspec.2011.5910448
1439:
372:as the other two. Vendor
360:offered for its original
140:
1413:Visual Component Library
318:system that runs on the
767:. pp. 191, 193–195
606:and one 64K stack/heap
1393:Object Windows Library
989:Hyde, Randall (1983).
859:10.1002/spe.4380070311
554:
552:
428:intermediate language
1118:UCSD P-System Museum
374:SofTech Microsystems
136:UCSD Pascal/p-System
54:improve this article
1077:UCSD Pascal Reunion
474:) offered an early
137:
1431:Pascal MicroEngine
1129:2014-05-06 at the
1058:on April 15, 2013.
868:20.500.11850/68668
648:Commodore CBM 8096
555:
553:UCSD Pascal in use
488:Pascal MicroEngine
343:as well as campus
280:Pascal MicroEngine
147:Logo of Version IV
1529:Operating systems
1506:
1505:
1359:
1358:
1210:Concurrent Pascal
442:virtual machine.
391:IBM Displaywriter
309:
308:
276:Osborne Executive
177:operating systems
130:
129:
122:
104:
16:(Redirected from
1541:
1534:Virtual machines
1497:Component Pascal
1457:
1336:Microsoft Pascal
1295:Pic Micro Pascal
1235:
1161:
1154:
1147:
1138:
1059:
1054:. Archived from
1030:: 44–49, 58–59.
1008:
985:
955:
954:
952:
950:
934:
928:
927:
922:
920:
911:. Archived from
904:
898:
897:
895:
887:
881:
880:
870:
842:
836:
835:
833:
831:
810:
804:
803:
801:
799:
783:
777:
776:
774:
772:
756:
750:
749:
747:
745:
729:
723:
722:
720:
712:
706:
705:
703:
701:
685:
503:operating system
424:virtual machines
324:operating system
224:
222:
217:
204:
202:
197:
194:August 1977
145:
138:
132:Operating system
125:
118:
114:
111:
105:
103:
62:
38:
30:
21:
1549:
1548:
1544:
1543:
1542:
1540:
1539:
1538:
1509:
1508:
1507:
1502:
1455:
1435:
1417:
1355:
1304:
1224:
1171:
1165:
1131:Wayback Machine
1102:ucsd-psystem-vm
1096:ucsd-psystem-os
1066:
1011:
1005:
988:
967:
964:
962:Further reading
959:
958:
948:
946:
945:. pp. 7–10
936:
935:
931:
918:
916:
915:on 4 March 2016
906:
905:
901:
893:
889:
888:
884:
844:
843:
839:
829:
827:
812:
811:
807:
797:
795:
785:
784:
780:
770:
768:
758:
757:
753:
743:
741:
731:
730:
726:
718:
714:
713:
709:
699:
697:
687:
686:
682:
677:
664:
639:
631:Western Digital
627:
576:
564:
547:
514:
455:instruction set
447:virtual machine
336:
304:virtual machine
220:
218:
215:
200:
198:
195:
191:Initial release
148:
133:
126:
115:
109:
106:
63:
61:
51:
39:
28:
23:
22:
15:
12:
11:
5:
1547:
1545:
1537:
1536:
1531:
1526:
1521:
1511:
1510:
1504:
1503:
1501:
1500:
1494:
1488:
1482:
1476:
1470:
1464:
1458:
1452:
1451:
1446:
1440:
1437:
1436:
1434:
1433:
1427:
1425:
1419:
1418:
1416:
1415:
1410:
1405:
1400:
1395:
1390:
1385:
1380:
1375:
1369:
1367:
1361:
1360:
1357:
1356:
1354:
1353:
1348:
1343:
1338:
1333:
1328:
1323:
1318:
1316:Virtual Pascal
1312:
1310:
1306:
1305:
1303:
1302:
1297:
1292:
1287:
1282:
1277:
1267:
1262:
1257:
1252:
1241:
1239:
1232:
1226:
1225:
1223:
1222:
1217:
1212:
1207:
1202:
1197:
1192:
1187:
1181:
1179:
1173:
1172:
1166:
1164:
1163:
1156:
1149:
1141:
1135:
1134:
1121:
1115:
1110:
1105:
1099:
1093:
1080:
1074:
1065:
1064:External links
1062:
1061:
1060:
1009:
1003:
986:
984:on 2012-03-06.
963:
960:
957:
956:
929:
899:
882:
853:(3): 391–423.
837:
805:
778:
751:
724:
707:
679:
678:
676:
673:
668:Corvus Systems
663:
660:
638:
635:
626:
623:
619:Joel McCormack
586:, DEC PDP-11,
575:
572:
563:
560:
546:
543:
539:Borland Pascal
518:Kenneth Bowles
513:
510:
499:cross-platform
480:Motorola 68000
420:p-code machine
341:microcomputers
335:
332:
307:
306:
298:
291:
290:
268:Motorola 68000
242:
238:
237:
232:
226:
225:
212:
210:Latest release
206:
205:
192:
188:
187:
184:
180:
179:
171:
167:
166:
156:
150:
149:
146:
131:
128:
127:
42:
40:
33:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
1546:
1535:
1532:
1530:
1527:
1525:
1522:
1520:
1517:
1516:
1514:
1498:
1495:
1492:
1489:
1486:
1483:
1480:
1477:
1474:
1471:
1468:
1465:
1462:
1459:
1454:
1453:
1450:
1447:
1445:
1442:
1441:
1438:
1432:
1429:
1428:
1426:
1424:
1423:Microcomputer
1420:
1414:
1411:
1409:
1406:
1404:
1401:
1399:
1396:
1394:
1391:
1389:
1386:
1384:
1381:
1379:
1376:
1374:
1371:
1370:
1368:
1366:
1362:
1352:
1349:
1347:
1344:
1342:
1339:
1337:
1334:
1332:
1329:
1327:
1326:Borland Kylix
1324:
1322:
1319:
1317:
1314:
1313:
1311:
1307:
1301:
1298:
1296:
1293:
1291:
1288:
1286:
1283:
1281:
1280:PascalABC.NET
1278:
1275:
1271:
1268:
1266:
1263:
1261:
1258:
1256:
1253:
1250:
1246:
1243:
1242:
1240:
1236:
1233:
1231:
1227:
1221:
1218:
1216:
1213:
1211:
1208:
1206:
1203:
1201:
1198:
1196:
1195:Pascal Script
1193:
1191:
1190:Object Pascal
1188:
1186:
1183:
1182:
1180:
1178:
1174:
1169:
1162:
1157:
1155:
1150:
1148:
1143:
1142:
1139:
1132:
1128:
1125:
1124:UCSD P-System
1122:
1119:
1116:
1114:
1111:
1109:
1106:
1103:
1100:
1097:
1094:
1092:
1088:
1084:
1081:
1078:
1075:
1072:
1068:
1067:
1063:
1057:
1053:
1049:
1045:
1041:
1037:
1033:
1029:
1025:
1021:
1020:
1019:IEEE Spectrum
1015:
1010:
1006:
1000:
996:
992:
987:
983:
979:
975:
971:
966:
965:
961:
944:
940:
933:
930:
926:
914:
910:
903:
900:
892:
886:
883:
878:
874:
869:
864:
860:
856:
852:
848:
841:
838:
826:
822:
821:
816:
809:
806:
794:. p. 123
793:
789:
782:
779:
766:
762:
755:
752:
739:
735:
728:
725:
717:
711:
708:
695:
691:
684:
681:
674:
672:
669:
661:
659:
657:
653:
649:
645:
636:
634:
632:
624:
622:
620:
616:
611:
609:
605:
601:
597:
593:
589:
585:
581:
573:
571:
569:
561:
559:
551:
544:
542:
540:
534:
532:
527:
523:
519:
511:
509:
506:
504:
500:
496:
495:Java platform
491:
489:
485:
481:
477:
473:
469:
464:
460:
459:Niklaus Wirth
456:
452:
449:, called the
448:
443:
441:
437:
433:
432:James Gosling
429:
425:
421:
416:
414:
409:
405:
404:
398:
396:
392:
388:
384:
383:
378:
375:
371:
367:
363:
359:
354:
352:
351:minicomputers
349:
346:
342:
333:
331:
329:
325:
321:
320:UCSD p-System
317:
313:
305:
302:
299:
296:
292:
289:
285:
281:
277:
273:
269:
265:
261:
257:
253:
250:
246:
243:
239:
236:
233:
231:
227:
213:
211:
207:
193:
189:
185:
183:Working state
181:
178:
175:
172:
168:
164:
160:
157:
155:
151:
144:
139:
124:
121:
113:
102:
99:
95:
92:
88:
85:
81:
78:
74:
71: –
70:
69:"UCSD Pascal"
66:
65:Find sources:
59:
55:
49:
48:
43:This article
41:
37:
32:
31:
19:
18:UCSD p-System
1408:Turbo Vision
1340:
1331:Turbo Pascal
1321:Apple Pascal
1309:Discontinued
1056:the original
1023:
1017:
990:
982:the original
977:
973:
947:. Retrieved
942:
932:
924:
917:. Retrieved
913:the original
902:
885:
850:
846:
840:
828:. Retrieved
818:
808:
796:. Retrieved
791:
781:
769:. Retrieved
764:
754:
742:. Retrieved
740:. p. 42
737:
727:
710:
698:. Retrieved
696:. p. 36
693:
683:
665:
640:
628:
612:
608:data segment
604:code segment
584:Apple Pascal
577:
565:
556:
535:
531:Turbo Pascal
515:
507:
492:
450:
444:
417:
407:
401:
399:
380:
379:
355:
337:
334:The p-System
319:
311:
310:
230:Available in
116:
107:
97:
90:
83:
76:
64:
52:Please help
47:verification
44:
1341:UCSD Pascal
1270:Free Pascal
1220:SuperPascal
919:13 February
830:24 December
792:PC Magazine
738:PC Magazine
662:Further use
650:, Sage IV,
625:Version III
582:ultimately
413:self-hosted
387:Context MBA
382:PC Magazine
312:UCSD Pascal
1513:Categories
1456:Related to
1383:FireMonkey
1351:Pascal/MT+
1346:JRT Pascal
1285:GNU Pascal
1260:VSI Pascal
1083:PowerPoint
1004:0881900044
798:21 October
771:19 October
744:20 October
700:19 October
637:Version IV
615:Mark Allen
588:Intel 8080
574:Version II
486:, and the
484:System/370
366:IBM PC DOS
256:Intel 8080
80:newspapers
1265:IP Pascal
1230:Compilers
1044:0018-9235
820:ACM Queue
656:BBC Micro
592:Zilog Z80
562:Version I
472:San Diego
451:p-Machine
436:Smalltalk
288:BBC Micro
260:Zilog Z80
241:Platforms
170:OS family
154:Developer
110:July 2011
1491:Oberon-2
1485:Modula-3
1467:Modula-2
1398:OpenWire
1177:Dialects
1127:Archived
1052:40545952
995:Datamost
644:TI-99/4A
596:MOS 6502
580:Apple II
545:Versions
522:compiler
330:(UCSD).
284:TI 99/4A
264:MOS 6502
245:Apple II
186:Historic
1290:Turbo51
1274:Lazarus
1255:Oxygene
1249:history
1238:Current
1205:Clascal
1200:Oxygene
877:2143405
652:HP 9000
512:History
370:CP/M-86
235:English
221:1987-12
219: (
201:1977-08
199: (
165:, Pecan
163:SofTech
94:scholar
1499:(1991)
1493:(1991)
1487:(1988)
1481:(1986)
1479:Oberon
1475:(1983)
1469:(1977)
1463:(1958)
1245:Delphi
1185:Pascal
1170:family
1050:
1042:
1001:
949:2 July
943:Beebug
875:
654:, and
600:IBM PC
594:, and
526:Pascal
482:, the
408:String
406:and a
362:IBM PC
348:PDP-11
301:p-code
295:Kernel
252:PDP-11
174:p-code
96:
89:
82:
75:
67:
1461:ALGOL
1215:Joyce
1091:Video
1048:S2CID
1026:(7).
974:@UCSD
894:(PDF)
873:S2CID
719:(PDF)
675:Notes
403:Units
393:, an
314:is a
101:JSTOR
87:books
1089:and
1040:ISSN
1028:IEEE
999:ISBN
951:2024
921:2011
832:2012
800:2013
773:2013
765:BYTE
746:2013
702:2013
694:BYTE
666:The
440:Java
395:8086
368:and
297:type
73:news
1473:Ada
1403:RTL
1388:LCL
1378:FCL
1373:CLX
1365:API
1300:ACK
1087:PPT
1032:doi
863:hdl
855:doi
476:Ada
463:PhD
358:IBM
345:DEC
272:x86
249:DEC
56:by
1515::
1046:.
1038:.
1024:48
1022:.
1016:.
997:.
993:.
976:.
972:.
941:.
923:.
871:.
861:.
849:.
823:.
817:.
790:.
763:.
736:.
692:.
590:,
490:.
415:.
286:,
282:,
278:,
274:,
270:,
266:,
262:,
258:,
254:,
247:,
161:,
1276:)
1272:(
1251:)
1247:(
1160:e
1153:t
1146:v
1034::
1007:.
978:1
953:.
896:.
879:.
865::
857::
851:7
834:.
802:.
775:.
748:.
721:.
704:.
223:)
203:)
123:)
117:(
112:)
108:(
98:·
91:·
84:·
77:·
50:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.