HomeMapIndexSearchNewsArchivesLinksAbout LF[Top Bar]
[BottomBar] 
 
[Photo of theAuthor] 
Emre Demiralp 
Yazar hakk�nda: �stanbul Amerikan Robert Kolej'inde ��renciyim ve ayn� zamanda �stanbul Teknik �niversitesi Fen-Edebiyat Fak�ltesi Bilgisayar Labaratuvarlar�n�n y�neticilerinden biriyim.Bu labaratuvarlardaki yayg�n i�letim sistemi LINUX'dur. �lgi alnlar�: PovRay, PostScript, animasyon, CD tasar�m�, programlama,holografi vs... 1994'ten beri LINUX kullan�c�s�.  

Yazarla temas 

Giri�

Y���n Y�netimleri

Matematiksel ��letmenler

 

PostScript ��lenenler Y���t�: ��lemler ve Matematiksel ��leyiciler

�eviri: Berk Onat

-PostScript Dizilerinin �kinci Metni-
[Ilustration] 
Damlaya damlaya g�l olur 
-T�rk Deyimi-.
�zet: Yazar PostScript dilinin i�lemsel y���n�n� tan�t�yor. Y���n y�netimleri ve matematiksel i�letmenler burada sunulmu�. Bu metin i�lemsel y���n�n t�m �zelliklerini kaps�yor. Gelecekteki metinler bu konu hakk�nda bilgi vermeye devam edecek.   
 
 


Giri�

Bu PostScript hakk�ndaki metinler dizisinin ikinci metni. Bu metindeki temel ama� Y���n i�letmenlerini anlatmak. ��lemsel Y���n PostScript'in en �nemli b�l�m�d�r. T�m bu; g�revler, aritmetiksel ve matematiksel i�lemler, d�ng�ler ve mant�ksal i�lemler bu belirli haf�za par�as�nda ele al�n�r. Evet! Y���n, PostScript'in ,ondan yapmas�n� istedi�imiz hemen hemen her�eyi �al��t�rmak i�in kulland���, �zel haf�za b�lgesidir. Y���n, bilgiyi en son girilen veri ilk �nce ��kacak �ekilde saklar. Bunu, bir ucu kapat�lm�� bir boruya benzetebiliriz. Bu boruya bir�ey koydu�umuzda, boru kendine yer a�mak i�in i�inde bulunan her�eyi kapal� u� taraf�na do�ru itecektir. Bu nedenle son girilen birim her zaman a��k olan uca yak�n olacakt�r. Y���nda bulunan birimler dizi , say�sal sabit, anahtar, blok vs... olabilirler. 

Y���n Y�netimi

Birimler y���n i�inde d�zenlenmesine kar��n birimleri yeniden d�zenlememize izin veren y���n i�lemleri vard�r.Y�netimler y���ndaki bir veya daha �ok birime uygulan�r. Tan�ma g�re, i�letmenler y���ndaki birimleri y�netirler. Y�netimin niteli�ine dayanarak birimlerin parametreye(PostScript tan�mlamalar�nda(Terminolojisinde,�zeli�inde) i�lemsellerdir)gereksinimleri olabilir. E�er parametreye veya parametrelere gereksinim duyarlarsa ilk �nce bu parametreler y���na atanmal�d�r.Bundan sonra i�letmen bu i�lemsellere �nem vererek hareket edecektir. Burada yeterince �rnekle birlikte bu i�letmenlerin bir listesini veriyoruz. Daha sonra ayr�nt�lar� ayd�nlatmak i�in �rnekler verilecektir.  

pop: Bu i�letmen, i�lemsel y���ndaki en �st �yeyi(son girilen) yok sayar. 

exch: Bu i�letmen, i�lemsel y���n�n en �st iki �yesinin yerlerini de�i�tirir. 

dup: Bu i�letmen, i�lemsel y���n�n en son girilen �yesinin bir kopyas�n� yarat�r ve bunu i�lemsel y���na atar. Di�er bir deyi�le, en �st �yeyi ikizle�tirir(duplicate). 

copy: Bu i�letmenin, i�letmen harekete ge�meden �nce i�lemsel y���na verilmesi gereken tamsay�lara gereksinimi vard�r. E�er bu tamsay�y� n olarak al�rsak komut(emir) n copy �eklinde verilecektir. Bu yap�ld���nda n en �st �yeler k�mesi yarat�lacak ve son girilen �ye gibi i�lemsel y���na yerle�tirilecektir. Di�er bir deyi�le, copy d�zenlenmi� ikizle�tirme(duplication) i�letmenidir. 

index: Bu i�letmenin, i�letmen harekete ge�meden �nce i�lemsel y���na verilmesi gereken tamsay� i�lemseline gereksinimi vard�r. E�er bu tamsay�y� n olarak d���n�rsek, komut(emir) n index �eklinde olacakt�r. Bu yap�ld��� zaman; n 'inci en �st �yenin kopyas�(e�i) yarat�lacak ve en son girilen �ye gibi i�lemsel y���na yerle�tirilecektir. Di�er bir deyi�le, index dahili bir �ye se�ebilir, yaratabilir ve kopyas�n� i�lemsel y���na yerle�tirebilir. �yelerin s�ralanmas� 0 ile birlikte en �st �yeden ba�lar. 

roll: Bu i�letmenin, i�letmen harekete ge�meden �nce i�lemsel y���na verilmesi gereken iki tamsay� parametresine gereksinimi vard�r. E�er bu tamsay� parametreleri m ve n gibi al�n�rsa komut m n index �eklinde verilecektir. Burada, n d�ng� say�s�n� nitelendirirken, m ne kadar �yenin devinece�ini belirtir. Tek �ye �yle tan�t�l�r ki, en �st �yenin alt�ndaki m-1 �yeler k�mesi bir �ste ta��n�rken, i�lemsel y���n�n en �st �yesi m'inci �ye durumuma gelir.Bu tasar� n 1'e e�it oldu�unda ge�erlidir. E�er n 2 olursa iki ard���k d�ng� meydana gelecektir. Ba�ka bir �ekilde s�ylersek, m 2 roll m 1 roll m 1 roll ile ayn�d�r. n parametresi eksili de�erleri alabilir. E�er n'e eksili de�er verilirse, n pozitifken olan hareketi ters �evirecektir.Bu da m n roll m -n roll emrinin(komutunun) do�al hareketini meydana getirecektir. ��lemsel y���n de�i�meden b�rak�lacak, �yelerin s�ralanmas� 0 ile birlikte en �st �yeden ba�layacakt�r. 

clear: Bu i�letmen i�lemsel y���n�n t�m �yelerini etkisiz b�rak�r. 

count: Bu i�letmen i�lemsel y���n�n �yelerini sayar. Sonu�, i�lemsel y���na yeni bir �ye olarak at�l�r. E�er bu yeni �yeyi istemiyorsan�z count pstack pop karma emrini(komutunu) verebilirsiniz. Burada pop, count taraf�ndan yeni yarat�lan �yeleri, say�m sonucu pstack dosya i�letmeninin hareketiyle g�sterildikten sonra siler.  

mark: Bu i�letmen i�lemsel y���n�n i�ine etiketlenmi� (-marktype-) �ye koyar. Bu �ye i�lemsel y���ndaki �yeler k�mesini alt k�melere b�lmek i�in kullan�labilir.Di�er iki i�letmen, cleartomark ve counttomark bu �yeyi i�lem s�ras�nda ararlar. E�er bulamazlarsa hata iletisi verilecektir. 

cleartomark: Bu i�letmen en �st �yeden ba�layarak ilk etikete (-marktype-) kadar olan t�m �yeleri siler. Bu etiket (-marktype-) de birlikte silinir. E�er i�lemsel y���nda hi� bir etiket yoksa bir hata iletisi verilir. 

counttomark: Bu i�letmen en �st �yeden ba�layarak etikete rastlayana kadar �yeleri sayar. Tamsay� de�eri olan sonu�, i�lemsel y���na son �ye olarak konur. Sonu� ilk kar��la��lan etiket �yesini i�ermez.E�er i�lemsel y���nda etiket yoksa PostScript yan�lg�ya d��er ve hi�bir �ey yapmaz. 

�sterseniz �imdi de biraz Y���n hakk�nda bilgi verelim.  E�er yukar�daki i�letmenleri hareket halinde g�rmek istiyorsan�z ilk �nce, PostScript �eviricisini etkinle�tirmelisiniz.
�lk metinde de belirtildi�i gibi, Linux d�nyas� serbest bir �evirici olan ghostscript'i kullan�r. Ghostscript, komut sat�r�nda uygun parametreler verilerek farkl� yollardan etkinle�tirilebilir. Genel y�ntem, X Windows ortam�nda gs komutunu kullanmakt�r. Bazen X'deki baz� ayarlama sorunlar� y�z�nden bu i�lemez. Bu durumda elveri�li �izgisel veribiriminin(console) yarat�lamad��� g�sterilecektir. Bundan sonra ya bu sorunlar ��z�lmelidir yada ghostscript'in x11 ayg�t�n� kullanmas� sa�lanmal�d�r. Bu ama�la gs -sDEVICE=x11 girersiniz. Bu yada sadece gs (e�er �al���rsa), oturum s�ras�nda yarat�lan g�r�nt�ler i�in kullan�lan arkaplan� beyaz bo� bir pencere yarat�r. Bu k�s�mda g�r�nt�ler bulunmad��� i�in bu pencereye gereksiniminiz yoktur ve bu pencereden kurtulabilirsiniz. Bunun i�in, ghostscript �eviricisi g�r�nt�s�z olarak gs veya gs -sDEVICE=x11 ile birlikte komut sat�r�na -dNODISPLAY parametresi girilmesiyle canland�r�labilir. E�er bu yap�l�rsa ilk �nce telif hakk� ba�l��� g�z�kecek, sonra bunu yeni bir sat�r�n ba��nda ghostscriptin haz�r oldu�unu belirten GS> yaz�s� izleyecektir. Bu noktada ghostscript, komutlar�n�za haz�rd�r ve i�lemsel y���n bo�tur.    

��lemsel y���n�n i�eri�ini g�rmek i�in bir dosya i�letmeni olan pstack'i kullanabilirsiniz. Bu komut, dosya i�letmeni olarak �a�r�l�r ��nk� i�erik bilgisini �ng�r�s�z(default) ekran olarak belirlenmi� genel sonu� dosyas�na g�nderir. E�er bu komutu haz�r imlecinde girerseniz hi�bir �ey g�r�nt�lenmeyecek ve yeni bir sat�r�n ba��nda yeni bir GS> haz�r imleci g�r�nt�lenecektir. Bu i�lemesel y���n�n bo� oldu�u anlam�na gelir. 

��lemsel y���na �ye girmek i�in haz�r imlecinde �yeleri girebilirsiniz. �rnek; e�er 1'i �ye olarak girmek istiyorsan�z haz�r imlecinde 1 girmeniz yeterlidir. Bundan sonra yeni bir sat�rda yeni haz�r imleci yarat�l�r. Fakat bu sefer, haz�r imleci GS> de�il GS<1> dir. Haz�r imlecinin bu yeni �ekli i�lemsel y���ndaki �yelerin say�s�n� belirtir. Bu nedenle, e�er ghostscript oturumunda herhangi bir anda GS<123> bulunuyorsa, i�lemsel y���nda 123 �yenin oldu�unu anlam�na gelir.  

Tek bir atamayla i�lemsel y���na birden fazla �ye girebilirsiniz. Bunun i�in t�m �yeleri s�ras�yla yazmal� fakat bo�luklar ile ay�rmal�s�n�z. �rnek vermek gerekirse; e�er haz�r durumundaki imlece 1 2 3 4 5 6 girerseniz, 1, 2, 3, 4,5, 6 olan �yelerden her biri girildi�i s�raya g�re i�lemsel y���na konulacakt�r. E�er bundan sonra pstack komutunu girerseniz son girilen �ye ilk g�sterilecek �ekilde �yelerin dikey bir d�zende g�sterilece�ini g�r�rs�n�z. Bu iki komut ortam�n�n g�r�nt�s� �u �ekilde verilebilir: 

GS>1 2 3 4 5 6 
GS<6>pstack
6
5
4
3
2
1
GS<6>
Tek bir atamayla i�lemsel y���na �yeler girmek ve y���n�n i�eri�ini g�rmek de m�mk�nd�r. Tek yapman�z gereken �yeler verildikten sonra pstack komutunu girmektir:  
GS>1 2 3 4 5 6 pstack
6
5
4
3
2
1
GS<6>
�u ana kadar �yeler girmek i�in say�lar� kulland�k. Say�lar tek �ye �e�idi de�ildir, de�i�kenler, a��klamalar, diziler, kal�plar vs... gibi di�er �e�it �yeleri de girmek m�mk�nd�r. Sonra bunlar� ayr�nt�l� olarak inceleyece�iz. Yine de �imdi bir�eyler s�ylersek; e�er sadece �rnek olarak a veya abc dizisi girmeye �al���rsan�z bir hata iletisi verilecektir. Bunun nedeni PostScript'in bunlar� anlayamamas�d�r. E�er bir de�er veya dizi girmek istiyorsan�z etraflar�n� () ile sarmal�s�n�z. Burada �zel bir �ye olan ve etiket(marktype) diye an�lan �ye �e�idinden s�z edece�iz. Bunu g�rmek i�in a�a��daki oturum �rne�ini verebiliriz : 
GS>1 2 3 mark 4 5 6 pstack
6
5
4
-marktype-
3
2
1
GS<7>
�imdi i�lemsel y���n y�netilerinin i�letmenleri i�in birka� �rnek g�rece�iz. Bu i�letmenlerin nas�l davrand���n� g�steren oturum �rne�ini sizlere sunuyorum ve bu b�l�m� daha ileri a��klamalar yapmadan sona erdiriyorum. . 
GS>1 2 3 mark 4 5 6 pstack
6
5
4
-marktype-
3
2
1
GS<7>pop pstack
5
4
-marktype
3 
2
1
GS<6>exch pstack
4
5
-marktype
3
2
1
GS<6>dup pstack
4
4
5
-marktype-
3
2
1
GS<7>2 copy pstack
4
4
4
4
5
-marktype
3
2
1
GS<9>5 index pstack
-marktype-
4
4
4
4
5
-marktype
3
2
1
GS<10>cleartomark cleartomark pstack
3
2
1
GS<3>3 1 roll pstack
2
1
3
GS<3>count pstack
3
2
1
3
GS<4>mark 7 8 pstack
8
7
-marktype-
3
2
1
3
GS<7>counttomark pstack
2
8
7
-marktype-
3
2
1
3
GS<8>clear pstack
GS>

Matematiksel ��letmenler

Y�netim i�letmenlerinden farkl� olarak aritmetiksel ve matematiksel i�letmenler de vard�r. Bu i�letmenler a�a��da verilmi�tir. Bu b�l�m i�in �rnek verilmeyecektir. Bundan sonras� bunlar� yaratabilen ve yukar�daki �rnek oturumlar ile donat�lm�� okuyucuya b�rak�lm��t�r. . 

add: Bu komutun, de�erleri toplama i�letmenine girilecek olan iki say�sal parametreye gereksinimi vard�r. E�er bu de�erler m ve n �eklinde al�n�rsa komutun m n add �eklinde olmas� beklenir. Bu durumda ilk �nce m ve n i�lemsel y���na at�l�r. add i�letmeninin i�lemsel y���n�n en �st iki �yesi �zerindeki i�lemi son k�s�md�r. Bu, m ve n 'in toplam�na e�it olan de�erde yeni bir �ye yarat�r. ��lem bittikten sonra m ve n i�lemsel y���nda tutulmaz. Bunun yerine sonu�, i�lemsel y���n�n en �st �yesine d�n���r.  

div: Bu komutun de�erleri b�lme i�lemine girilecek olan iki say�sal parametreye gereksinimi vard�r. E�er bu de�erlere m ve n denirse komutun m n div �eklinde verilmesi gerekecektir. Bu i�lemin i�leyi� bi�imi add ile ayn�d�r. B�lme i�lemi aritmetik d�zeyin y�zen bir noktas�ndad�r. ��lem yap�ld�ktan sonra sadece sonu� i�lemsel y���nda yeni bir �ye olarak b�rak�l�r. m ve n tutulmaz. 

idiv: Bu komutun de�erleri tamsay� b�lme i�lemine girilecek iki say�sal parametreye gereksinimi vard�r. E�er bu de�erler m ve n �eklinde se�ilirse komut m n idiv �eklinde verilir. B�lme d�zeyi d���nda her�ey div ile ayn�d�r. Bu tamsay� aritmetik b�lme i�lemidir. Parametreler tamsay� olmasa da �al���r. 

mod: Bu komutun iki tamsay� parametresine gereksinimi vard�r. Bu komut birinci parametrenin kalan�yla ikinci parametreninkini de�erlendirir. E�er herhangi bir parametre tamsay� de�ilse �al��ma ba�ar�s�z olur. Sonu� i�lemden sonra i�lemsel y���nda tek tutulan de�erdir. 

mul: add ve div ile ayn�d�r. �ki say�sal de�ere gereksinimi olan ikilik d�zen i�letmenidir. Sonu� parametrelerin �arp�m�d�r ve i�lemsel y���nda yeni bir �ye olarak korunur.  

sub: add,div ve mul ile ayn�d�r. Tek fark i�lem �e�itidir. �kinci parametrenin de�erini birincisinden ��kart�r. Parametreler ve sonu� say�sal de�erlerdir ve sonu� i�lem tamamland�ktan sonra i�lemsel y���nda tutulur. 

exp: �kilik d�zende matematiksel i�letmendir. �ki parametreye gereksinimi vard�r. �lki taban, ikincisi �st�r. Taban�n de�erini, de�eri �st olan kuvvete artt�r�r. Parametreler �stel i�lem s�n�rlar�nda olmal�d�r. Y�zen bir noktasal say� olan sonu� i�lemsel y���nda yeni bir �ye olarak tutulur. . 

atan: A��sal de�er i�in ikilik d�zende matematiksel i�letmendir. A�� 0 ile 360 aras�nda bir de�erde verilir. �ki parametreye gereksinimi vard�r. �lk parametrenin ikncisine oran�, hesaplanacak olan a��n�n tanjant�na(tegetine) e�ittir. Parametrelerin i�areti sonucun bulunaca�� �eyrek �emberi belirler. �lk parametrenin pozitif de�erleri pozitif y d�zlemine kar��l�k gelir. Oysa, ikinci parametrenin pozitif de�erleri pozitif x d�zlemini anlatacakt�r. . 

abs: Matematiksel i�letmene ait de�ildir. Sonucu mutlak de�er olan sadece bir parametreye gereksinimi vard�r. Yukar�dakine benzer �ekilde, sonu� i�lemsel y���nda yeni bir �ye olarak tutulur. 

neg: Sadece teriminin i�aretini de�i�tirir. Aritmetik i�letmene ait de�ildir. 

ceiling: Terime �stten en yak�n olan tamsay� de�erini hesaplayan bir i�letmendir. 

floor: Terime alttan en yak�n olan tamsay� de�erini saptayan bir i�letmendir. 

round: Terime en yak�n olan tamsay� de�erini de�erlendiren i�letmendir. 

truncate: Terimin ondal�k b�l�m�n� silen bir i�letmendir. 

sqrt: Terimin kare k�k�n� hesaplayan bir i�letmendir. 

cos: Terimin kosin�s�n� hesaplayan i�letmendir. Terimin derece cinsinden verilmesi beklenir. 

sin: Terimin sin�s�n� hesaplayan i�letmendir. Terimin derece cinsinden verilmesi beklenir. 

ln: Terimin do�al logaritmas�n� hesaplayan i�letmendir. 

log: Terimin 10 taban�ndaki logaritmas�n� hesaplayan i�letmendir. 

Metni bitirmeden �nce bir hat�rlatma daha; yukar�da s�z etmemize ra�men, kesin bir a��kl�kla komut de�erleri (PostScript tan�mlamas�nda i�lemseller) baz� tats�z sorunlar yaratabilir. Komut, (yada PostScript tan�mlamas�nda i�letmen) parametresini i�lemsel y���nda arar. Buldu�unda kullan�r ve i�lemsel y���ndan siler. Bu nedenle, tedbirle veya hatayla parametrelere gereksinimi olan komutun, i�lemsel y���na parametre de�erleri olmadan verilmesi, ya i�lemsel y���ndaki baz� �st �yelerin parametrelerinde sapmalara yada baz� �st i�lemsel y���n �yelerinin silinmesine sebep olur.  

Bu sunumu tamamlamadan �nce PostScript`te ilerlemek isteyen kullan�c�lara daha karma��k ve geni� programlar yazmalar�n� tavsiye ediyoruz. Bu dizinin ileriki yaz�lar�nda PostScript dili hakk�nda daha fazla ayr�nt�ya girilecektir. Sunumumuz hakk�nda t�m sorular�n�z� ve fikirlerinizi bekliyoruz. 

Jorge M. Paolo and Jose Quesada taraf�ndan g�zden ge�irilmi�tir

 
Bu sanaly�renin bak�m� Miguel Angel Sepulveda taraf�ndan yap�lmaktad�r
© Emre Demiralp 1999 
LinuxFocus 1999