123

Attention! The website uses cookies to offer you better browsing experience. Find out more on Privacy Policy. Now your browser has blocked cookies. This information will be displayed until you enable cookies in your browser.
I understand and accept cook­ies!
*
:
/
o
[
]
Z
U

Skła­dnia ję­zy­ka

Plik post­scrip­to­wy jest pli­kiem tek­sto­wo-bi­nar­nym. Ope­ra­to­ry (ope­ra­to­ry, to ina­czej po­le­ce­nia ję­zy­ka, np. ope­ra­tor li­ne­to po­wo­du­je na­ry­so­wa­nie li­nii) i ar­gu­men­ty (ar­gu­men­ty to war­to­ści li­czbo­we, np.: po­le­ce­nie 10 20 li­ne­to za­wie­ra dwa ar­gu­men­ty i je­den ope­ra­tor) są prze­cho­wy­wa­ne w for­mie tek­sto­wej, na­to­miast da­ne (np. gra­ficz­ne) mo­gą być za­pi­sy­wa­ne w for­mie tek­sto­wej lub bi­nar­nej.

Fot. 1.
Przy­kład ko­du pro­gra­mu w ję­zy­ku Post­Script

Ję­zyk Post­Script opar­ty jest na ONP (Od­wrot­nej No­ta­cji Pol­skiej). Ozna­cza to, że w za­pi­sie (np. wy­wo­ła­nia fun­kcji) wy­stę­pu­ją naj­pierw pa­ra­me­try, a po­tem naz­wa ope­ra­to­ra. Np. za­pis 10 20 add ozna­cza, że na­le­ży wziąć dwie li­czby (10 i 20), a na­stęp­nie je do­dać.

Je­śli li­czby ozna­cza­ją współ­rzę­dne, to są one po­da­wa­ne w pun­ktach ty­po­gra­ficz­nych (je­den punkt ty­po­gra­ficz­ny jest rów­ny 1/72 ca­la). Punkt 0, 0 (po­czą­tek ukła­du współ­rzę­dnych) le­ży w le­wym dol­nym na­roż­ni­ku kar­tki.

Ope­ra­cje w ję­zy­ku Post­Script wy­ko­ny­wa­ne są na tzw. sto­sie. Np. we wspo­mnia­nym wy­żej przy­kła­dzie za­war­tość sto­su przed wy­ko­na­niem ope­ra­cji wy­glą­da­ła­by tak:

--- po­czą­tek sto­su
10
20
--- ko­niec sto­su

Ope­ra­tor add „kon­su­mu­je” ze sto­su dwie da­ne, a wy­nik od­kła­da na stos. Po wy­ko­na­niu ope­ra­to­ra add stos bę­dzie wy­glą­dał tak:

--- po­czą­tek sto­su
30
--- ko­niec sto­su

W do­ku­men­ta­cji ję­zy­ka Post­Script sy­tua­cję tę opi­su­je się tak:

num1 num2 add num3

co ozna­cza, że ope­ra­tor add po­bie­ra dwie li­czby i zwra­ca je­dną.
Z ko­lei za­pis:

num1 num2 mo­ve­to ---

ozna­cza na­to­miast, że ope­ra­tor mo­ve­to po­bie­ra dwie li­czby, ale nie zwra­ca nic. I od­wrot­nie:

--- cur­ren­tcmyk­co­lor num1 num2 num3 num4

ozna­cza, że ope­ra­tor cur­ren­tcmyk­co­lor nie po­bie­ra da­nych, za to zwra­ca na stos czte­ry li­czby.

Jak w każ­dym ję­zy­ku pro­gra­mo­wa­nia, ró­wnież i tu moż­na de­fi­nio­wać zmien­ne, np. za­pis:

/test 2 def

ozna­cza, że zmien­nej test przy­pi­sa­liś­my war­tość 2.

Zmien­ne prze­cho­wy­wa­ne są w tzw. sło­wni­kach. Sło­wnik, to ze­staw par klucz Strzałka war­tość. In­ter­pre­ter prze­cho­wu­je sło­wni­ki na sto­sie (w pro­gra­mie – li­sta Stos sło­wni­ko­wy). Kie­dy pro­gram szu­ka war­to­ści dla za­da­ne­go klu­cza prze­glą­da stos sło­wni­ko­wy za­czy­na­jąc od sło­wni­ka znaj­du­ją­ce­go się na je­go szczy­cie. Je­śli w sło­wni­ku tym nie zo­sta­nie zna­le­zio­na da­na zmien­na – pro­gram prze­szu­ku­je na­stęp­ny sło­wnik, itd. aż do zna­le­zie­nia zmien­nej (lub stwier­dze­nia, że zmien­na nie ist­nie­je, co oczy­wi­ście spo­wo­du­je prze­rwa­nie pra­cy in­ter­pre­te­ra z po­da­niem od­po­wie­dnie­go ko­mu­ni­ka­tu błę­du).

Sło­wnik sy­stem­dict za­wie­ra pre­de­fi­nio­wa­ne zmien­ne i ope­ra­to­ry.

Oczy­wi­ście nie jest za­da­niem te­go opi­su przed­sta­wie­nie peł­ne­go opi­su Post­Scrip­tu. Peł­na do­ku­men­ta­cja ję­zy­ka znaj­du­je się pod tym ad­re­sem. Plik za­wie­ra spe­cy­fi­ka­cję Post­Scrip­tu po­zio­mu 3 i w opar­ciu o tę do­ku­men­ta­cję zbu­do­wa­no oma­wia­ny tu in­ter­pre­ter te­go ję­zy­ka.