123

Uwaga! Ta wi­try­na wy­ko­rzy­stu­je pli­ki cook­ies w ce­lu umoż­li­wie­nia dzia­ła­nia nie­któ­rych fun­kcji ser­wi­su (np. zmia­ny ko­lo­ru tła, wy­glą­du in­ter­fej­su, itp.) oraz w ce­lu zli­cza­nia li­czby od­wie­dzin. Wię­cej in­for­ma­cji znaj­dziesz w Po­li­ty­ce pry­wat­no­ści. Ak­tual­nie Two­ja przeg­lą­dar­ka ma wy­łą­czo­ną ob­słu­gę pli­ków co­o­kies dla tej wi­try­ny. Ten ko­mu­ni­kat bę­dzie wy­świet­la­ny, do­pó­ki nie za­ak­cep­tu­jesz pli­ków cook­ies dla tej wi­try­ny w swo­jej przeg­lą­dar­ce. Kliknięcie ikony * (w pra­wym gór­nym na­ro­żni­ku stro­ny) ozna­cza, że ak­ce­ptu­jesz pli­ki cookies na tej stro­nie. Ro­zu­miem, ak­cep­tu­ję pli­ki 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.