**UCSD Pascal** var en variant av programmeringsspråket Pascal, utviklet ved *Institute for Information Systems,* University of California, San Diego i 1978 under ledelse av professor Kenneth Bowles. Formålet med utviklingen var å styrke undervisningen i programmering og kompilator-teknologi, og å utnytte rimelige prosessor-arkitekturer som kom på markedet på siste halvdel av 1970-tallet.

Språket hadde viktige utvidelser i forhold til standard-Pascal, inklusive datatypene *Unit* og *String*, som trolig påvirket programmeringsspråket Ada. Videre hadde UCSD Pascal et utvidet spekter av innebygde funksjoner *(intrinsic functions)* som bidro til å forenkle og effektivisere håndteringen av strenger og søking i tabeller. 

UCSD Pascal var hovedkomponent i operativsystemet med samme navn - **The UCSD Pascal System** - senere omdøpt til **UCSD p-System**. Operativsystemet besto av grunnleggende verktøy for software-utvikling, og var i sin helhet skrevet i Pascal. I motsetning til de fleste systemer på den tiden, var UCSD Pascal fullstendig skjermorientert. Programmer kunne kompileres direkte fra skjerm-editoren, feilmeldinger kom tilbake på riktige steder i kildekoden og effektiviserte programutviklingen enormt. 

Et viktig mål for professor Bowles var å styrke undervisningen i programmering ved å utnytte de nye og stadig rimeligere mikroprosessorbaserte systemene på markedet. Med utgangspunkt i en idé skissert av Pascal-språkets far, Niklaus Wirth noen år tidligere (i boken *Algorithms + Data Structures = Programs*) ble det definert en virtuell maskin, kalt en 'p-maskin' eller 'pseudo-maskin' med et tilhørende instruksjonssett, 'p-code'. P-koden var hardware-uavhengig og portabel. Med en relativt enkel p-kode oversetter for hver systemtype, kunne programmer flyttes og kjøres uendret på maskiner fra ulike leverandører og med forskjellige arkitekturer. P-kode oversetterne var 'interpreterende', de oversatte i sann tid. Mellomtrinnet med p-kode hadde en betydelig ytelsesmessig kostnad, men portabiliteten veide opp for denne kostnaden. I tillegg er p-koden typisk mer kompakt enn vanlig kode for en gitt maskinarkitektur. P-systemet trengte 48k bytes hukommelse og tilgang til en floppy-disk enhet med minst 150kB kapasitet for å fungere. 

Som den første fungerende implementasjon av en virtuell maskin, ble UCSD p-System trendsettende, og en viktig inspirasjonskilde til senere virtuelle maskiner, inklusive velkjente JVM, Java Virtual Machine.

Operativsystemet ble først utviklet på arbeidsstasjoner av typen Terak 8510/a, basert på mikroprosessorvarianten av Digitals PDP-11 prosessor, LSI-11. Terak var en av verdens første mikroprosessorbaserte arbeidsstasjoner, og fant raskt et marked i teknologi-orienterte akademiske miljøer. I perioden 1978 til 1983 ble det laget p-kode oversettere for en rekke prosessorer og arkitekturer: Z80, Z8, 8080, 6800, 6809, 6502, 9900 og 8086/8087/8088. Det ble også utviklet Fortran og Basic kompilatorer for systemet, i tillegg til assemblere for samtlige støttede arkitekturer. Siden alle assemblere var p-kode, og dermed kunne kjøre på alle støttede systemer, ble p-systemet en populær plattform for kryss-utvikling. 

**UCSD p-System** ble lisensiert til og videresolgt av IBM for den opprinnelige IBM-PC, ved siden av PC-DOS og CP/M-86. IBM benyttet dessuten UCSD p-System på den mikroprosessor-baserte (Intel 8086) datamaskinen *Displaywriter*, som var spesiallaget for tekstbehandling. Også en rekke andre system-leverandører lisensierte systemet, inklusive Apple, som solgte det under betegnelsen 'Apple Pascal' fra 1979. San Diego selskapet SofTech Microsystems Inc. startet kommersiell distribusjon og support for UCSD p-System i 1979. 

Det ble utgitt en rekke bøker om UCSD Pascal og p-systemet. Hele systemet ble open sourcet på 2000-tallet - inklusive kode og dokumentasjon for de fleste varianter.

Referanser
----------

1. ↑  (en) Kenneth Bowles (22. oktober 2004). «Some Insights for UCSD Pascal Generation». Arkivert fra originalen 4. mars 2016. Besøkt 10. oktober 2017. «UCSD Pascal Units probably influenced Ada Packages»
2. ↑  Niklaus,, Wirth, (1976). *Algorithms + data structures=programs*. Englewood Cliffs, N.J.: Prentice-Hall. ISBN 9780130224187. OCLC 1324351.
3. ↑  «» Pascal and the P-Machine The Digital Antiquarian». *www.filfre.net* **(engelsk)**. Besøkt 13. november 2017.
4. ↑  C. A. Irvine (16. august 1980). «UCSD System makes programs portable». *Electronic Design*.
5. ↑  «A Conversation with James Gosling - ACM Queue». *queue.acm.org*. Besøkt 14. november 2017.
6. ↑  «Jefferson Computer Museum - Terak Museum». *www.threedee.com*. Besøkt 13. november 2017.
7. ↑  Softech Microsystems (1983). *UCSD p-System for the Apple II Computer*. Softech Inc.
8. ↑  «UCSD P-System – Pascal for small machines». *pascal.hansotten.com* **(engelsk)**. Besøkt 13. november 2017.

Eksterne lenker
---------------

* UCSD Pascal and the PC revolution

  


|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | GND **·** LCCN
 |