UCSD Pascal

UCSD Pascal

Redaktörsskärm i UCSD p-System , Apple II
Sorts programmeringsspråk och programmeringsspråk på hög nivå
Utvecklaren UC San Diego , SofTech , Pecan
Gränssnittsspråk engelsk
Första upplagan 1978
Hårdvaruplattform Apple II , DEC PDP-11 , Zilog Z80 , MOS 6502 , Motorola 68000 , x86 , Pascal MicroEngine
senaste versionen Version IV

UCSD Pascal är en dialekt av programmeringsspråket Pascal .

Under andra hälften av 1970-talet utvecklades UCSD p-System vid University of San Diego (Kalifornien, USA) , som inkluderade en kompilator från Pascal till portabel p-kod (själva idén att kompilera till p-kod lånades från mer tidiga Pascal-P-system). Den första versionen som distribuerades utanför universitetet var version I.3 som släpptes i augusti 1977 [1] .

Funktioner i språket

UCSD Pascal introducerade flera viktiga tillägg till Pascal-språket, såsom moduler , som är kompileringsenheter, och teckensträngar med variabel längd. Dessutom stöddes tilläggen till Pascal-språkstandarden som var vanliga vid den tiden, såsom översättningsdirektiv i pseudokommentarer, specificering av det faktiska filnamnet när den öppnades, hantering av I/O-fel, valfritt listning av filer i programhuvudet , etc. Därefter var de huvudsakliga kommersiella implementeringarna av språket Pascals baserade på denna modifiering av Pascal i första hand Apples Object Pascal och Borlands Turbo Pascal .

Den maximala längden på en teckensträng i UCSD Pascal, som i senare 1980-talsdialekter, var 255 tecken, men 80 tecken användes som standard i UCSD Pascal.

Otypade filer och motsvarande blockläsnings- och blockskrivningsprocedurer stöddes .

Överdrivet resurskrävande på den tidens hårdvara, heap-minneshantering med de nya och avyttringsprocedurerna i UCSD Pascal ersattes med en mer effektiv, men mindre bekväm och felproducerande dynamisk minnesstackhantering ( avyttringsproceduren var tom, den nuvarande stackpekaren för dynamiska variabler kom ihåg med procedurmarkeringen och återställdes med releaseproceduren , vilket frigjorde allt minne som tilldelats efter motsvarande anrop till mark ).

I likhet med strängtypen sträng  [n], stöddes BCD-datatypen heltal  [n] med ett specificerat antal decimalsiffror.

En intressant egenskap hos UCSD Pascal-dialekten var standardförbudet mot användningen av goto- operatorn (om det speciella översättningsläget {$G+} inte angavs, ansågs goto- operatorn vara ett fel).

Moduler

Det hävdas ibland i översiktsartiklar att konceptet med moduler i UCSD Pascal togs från språkprojektet Ada . Men UCSD Pascal-utvecklaren Kenneth Bowles skriver att tvärtom, moduler i UCSD Pascal fungerade som en prototyp för en liknande paketmekanism i Ada [2] , som började utvecklas 1977.

Implementeringar

Utbredd i slutet av 1970-talet och början av 1980-talet var implementeringen av UCSD Pascal II.1 på en Apple II -dator med en 6502-processor , licensierad av Apple Computer under Apple Pascal-varumärket och med sin egen version med nummer 1.0-1.3 (men bland vanligare kallas UCSD Pascal). I den här implementeringen fanns ytterligare AppleStuff-moduler tillgängliga med olika systemanrop (att arbeta med tangentbordet, ljud, etc.) och TurtleGraphics med ett sköldpaddsgrafikpaket. I Bulgarien var Apple Pascal lokaliserad för Pravets-82- datorn , denna produkt användes i det bulgariska utbildningsprogrammet, som också användes i Sovjetunionen på 1980-talet.

Den senaste kommersiella versionen av UCSD Pascal-kompilatorn distribuerades av Cabot Software under namnet P-Code Pascal fram till 2001 och hade implementeringar för Windows, MS DOS, Macintosh, OS/2, RS/6000, Power PC, ARM, SCO UNIX, Interaktiva UNIX-plattformar. , Linux, DEC VAX, AIX, Hitachi SH. P-Code Pascal inkluderade multitasking och objektorienterad programmering [3] .

Anteckningar

  1. UCSD P-SYSTEM MUSEET . Tillträdesdatum: 5 oktober 2009. Arkiverad från originalet 17 februari 2015.
  2. Fil från Keent Bowles webbplats www.kenbowles.net, Some Insights for UCSD Pascal Generation Arkiverad 24 februari 2021 på Wayback Machine på retro8bits.com
  3. Cabots P-kod Pascal . Hämtad 10 oktober 2009. Arkiverad från originalet 5 december 2008.

Länkar

På engelska

Se även