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.[1] 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)[2] ble det definert en virtuell maskin, kalt en 'p-maskin' eller 'pseudo-maskin' med et tilhørende instruksjonssett, 'p-code'.[3] 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.[4] 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.[5]

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.[6] 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.[7] 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.[8]

Referanser rediger

  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 rediger