PostScript

Nyelvi fogalmak

A PostScript mint programozási nyelv meglehetõsen egyszerû, csak néhány fogalmat kell vázolnunk.

Megjegyzés

A PostScript megjegyzése tetszõleges szöveg, melyet '%' jel elõz meg. A '%!' kezdetû különleges megjegyzést több rendszerben annak felismerésére használják, hogy Postscript kódról van szó. Ezért hasznos minden Postscript dokumentumot ilyen megjegyzéssel kezdeni, hogy a nyomtatók és a segédszoftverek felismerhessék, a dokumentum Postscript nyelven íródott.

Verem

A PostScript rendszerben számos verem található, de csak kettõ igazán fontos nekünk közülük: a mûveleti verem és a szótárverem. Az eljárások (vagy a Postscript zsargona szerint mûveletek) a mûveleti verembõl veszik argumentumaikat, azokat a mûvelet elõtt be kell helyezni oda. A szótárverem szótárak, azok pedig változók értékeinek tárolására valók.

Szótár

A szótár név - érték párok gyûjteménye. Szótárakban (és csak ott!) tárolhatunk minden, névvel rendelkezõ változót. Hasonlóan a szótárak tartalmazzák a definiált mûveleteket is, kódjukkal együtt. A szótárverem tartalmazza az összes megnyitott szótárat. Ha a program valami kulcsra hivatkozik, az értelmezõ elkezdi keresni a verem teteje felõl a szotárakban, az elsõ elõfordulásig. Ily módon egy nevet több értékhez rendelhetünk, egyszerû, követhetõ láthatósággal. Hasznos, hogy szótárnak is adhatunk neveket, és tárolhatjuk másik szótárban.

Nevek

A név karaktersorozat, ami nem értelmezhetõ számként. A szóköz és bizonyos fenntartott karakterek (úgysmint '(', ')', '[', ']', '<', '>', '{', '}', '/', and '%') kivételével bármilyen karakter egy név része lehet. Akár számjegyekkel is kezdõdhet (1Z például egy név), de bajba kerülhetsz velük (1E10 egy valós szám). A név, ahogy már láttuk, hivatkozás egy szótárbeli értékre a szótárverembõl.

Egy apró megjegyzés: akad egy pár név, ami a fentiek szerint nem volna megengedett. Ezek a '[' és ']' mûveletek. Igen, ezek valóban mûveletek, a könyvtárban vannak tárolva. Lehet, hogy meglep még néhány név: '=', '==', '<<', és '>>'.

Ha egy nevet per jel elõz meg, a Postscript a nevet operandusként a veremre helyezi. Ha a név önmagában áll, az értelmezõ kikeresi az értékét a szótárverembõl. Ha az érték egy eljárás, az végrehajtásra kerül. Ha nem eljárás, az érték kerül a mûveleti verem tetejére.

Számok

A PostScript egész és valós számokat támogat. Radix és normálformában adhatod meg õket. A radix forma a következõ: számrendszer#érték, a normálforma a programozási nyelvekbõl ismeretes mantisszaEkitevõ.

Karakterlánc

A PostScript 1 szinten kétféleképp fejezhetsz ki karakterláncot: A legmegszokottabb módja, ha zárójelbe teszed a szöveget: például a "Ez egy karakterlánc" karakterláncot írhatod így: (Ez egy karakterlánc). Ezen kívül kacsacsõrök közt a karakterek hexadecimális kódjával is leírhatsz egy karakterláncot, pl. az "ABC" kifejezhetõ így: <414243>. A zárójeles formában több vezérlõkód is használható.

Tömbök

Akárcsak más programozási nyelvekben. A tömbök különbözõ típusú elemeket tartalmazhatnak, amiket szögletes zárójelpár közé írunk, például [12 /Foo 5] egy három elemû tömb, amely tartalmazza a 12 számot, a Foo nevet, és az 5 számot.

Eljárás

Eljárásként készíthetsz saját mûveletet. Az eljárás egy végrehajtható tömb, amelyeket szögletes helyett kapcsos zárójelekkel határolunk. Peldának vegyünk egy eljárást, ami négyzetre emeli a verem tetején lévõ számot: { mul}. Ezt definiálhatjuk square mûveletként: /square {dup mul} def.