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] .
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).
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.
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] .
Pascal | |||||||
---|---|---|---|---|---|---|---|
Dialekter |
| ||||||
Kompilatorer |
| ||||||
ID | |||||||
Personer |