Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseBig5  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Turkce  Korean  

convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
taraf�ndan Brent B. Welch

Yazar hakk�nda:
Brent Welch, Tcl ile ilgili URL'lerin(Tcl Kaynak merkezi) a��klamal� bir veritaban�n� ve Tcl �r�n� i�in e-ticaret altyap�s� i�eren, www.scriptics.com websitesini olu�turmaktad�r.Ayn� zamanda TclHttp a� sunucusu(www.scriptics.com sitesinde kullan�lan), Exmh mail kullan�c� aray�z� ve webtk HTML edit�r� i�eren �e�itli geni� Tcl/Tk uygulamalar� geli�tirmi� olup, "Tcl ve Tk'de Uygulamal� Programlama" kitab�n�n da yazar�d�r. Welch, 1982'de Colorado �niversitesi'nde uzay m�hendisli�i e�itimi ald�ktan sonra 1986'da Berkeley, California �niversitesi'nde bilgisayar m�hendisli�inde y�ksek lisans e�itimi g�rd�. 1990'da gene ayn� yerde doktoras�n� tamamlad�.Welch, yak�n bir zamana kadar Xerox PARCH'da ara�t�rma g�revlisiydi. Daha sonra, Sun Mikrosistem Laboratuvarlar�'nda Tcl/Tk tak�m�nda g�rev ald�.�u an ACM ve IEEE Bilgisayar G�venli�i kurulu�unun bir �yesidir. Home Page: http://www.beedub.com/
��erik:

Tcl S�zdizimi

�eviri : Hasan Serhan Ak�n

[Ilustration]

�zet:

Bu makale Tcl dilinin temel kavramlar�n� ve s�zdizimini a��klamaktad�r.



 

Tcl S�zdizimine Giri�

Bir betik dili i�in, Tcl basit bir s�zdizimi yap�s�na sahiptir.

cmd arg arg arg
Bir Tcl komutu bo�luklarla ayr�lm�� kelimelerden olu�ur.�lk kelime komutun ismi, geriye kalanlar ise komutun arg�manlar�d�r.
$foo
Dolar ($) i�areti bir de�i�kenin de�erinin yerini al�r. Bu �rnekte ise, de�i�ken ismi foodur.
[clock seconds]
K��eli parantezler i�i�e komutlar� �al��t�r�r. Mesela, bir komutun sonucunu di�erine bir arg�man olarak ge�irmek istiyorsan�z bu yap�y� kullanabilirsiniz. �rnekte i� komut "clock seconds" olup �u anki zaman� saniye �eklinde verir.
"some stuff"
�ift t�rnak i�areti kelime gruplar�n� bir komuta tek bir arg�man gibi g�sterir.Dolar ve k��eli parantez i�aretleri �ift t�rnak i�areti i�inde de anlamland�r�l�r.
{some stuff}
Yayl� parantez de kelime gruplar�n� tek bir arg�man gibi g�sterir. Ancak bu durumda parantezlerin aras�ndaki de�i�kenler anlamland�r�lamaz.
\
Ters b�l� i�areti (\) (Frenk�esi ters slash:) ) �zel karakterlerin kullan�lmas�nda i�e yarar. �rne�in, \n sat�rba�� durumunu �retir. Ters b�l� i�areti; dolar i�areti,t�rnak i�areti,k��eli ve yayl� parantezlerin anlamlar�n�n de�erlendirilmemesi gerekti�inde de i�e yarar.
 

K���k bir �rnek

A�a��daki, �u anki zaman� ��kt� olarak veren bir Tcl komutudur. Burada �� Tcl komutu kulln�lmaktad�r: set, clock, veputs. set komutu de�i�keni atama i�lemini yapar. clock komutu zaman de�erini hesaplar. puts komutu ise de�erleri ��kt� olarak verir.

set seconds [clock seconds] puts "The time is [clock format $seconds]"

$ i�aretinin atama i�leminde kullan�lmad���na dikkat edin.Sadece bir de�er vermek istedi�imizde $ i�aretini kullan�yoruz. seconds de�i�keni �nceki �rnekte gerekli de�ildi.�u anki zaman� tek bir komutla yazd�rabiliriz:

puts "The time is [clock format [clock seconds]]"

 

Gruplama ve Yer De�i�tirme

Tcl s�zdizimi, "Tcl parser"a �� safhada yol g�stermekde kullan�l�r:arg�man gruplama, sonucun de�i�imi ve komut g�nderimi.

  1. Arg�man Gruplama. Tcl, arg�manlar�n komutlarda nas�l d�zenlenece�inin saptanmas�na ihtiya� duyar. En basitiyle, bo�luklar arg�manlar� ay�r�r.Daha �nce s�ylendi�i gibi, t�rnak ve parantez i�aretleri birden fazla s�zc��� tek bir arg�man gibi gruplamaya yarar. �nceki �rnekte �ift t�rnak i�areti i�indekileri puts komutuna tek bir arg�man olarak gruplamada kullan�ld�.

  2. Sonucun De�i�imi. Arg�manlar grupland�ktan sonra, Tcl string de�i�imini yapar. Yani, $foo, de�i�kenin de�eri foo ile ve parantez i�indeki komutlar da sonu�lar�yla yerde�i�tirir. Bu de�i�im gruplama �nemli olduktan sonra yap�l�r. B�ylelikle bu s�ra al���lmad�k de�erlerin komutun yap�s�n� kar��t�rmamas�n� sa�lar.

  3. Komut Ayr�m�. De�i�imden sonra, Tcl g�nderim tablosundaki komutlar� anahtar olarak kullan�r. Tabloda tan�mlanan C i�lemi �a�r�l�r ve C i�lemi komutu icra eder. Ayn� zamanda Tcl'de komut i�lemleri yaz�labilir.Ayr�ca, arg�man ge�irmede ve hatalar� ele almada basit gelenekler vard�r.
 

Ba�ka Bir �rnek

Bu da ba�ka bir �rnek:

set i 0 while {$i < 10} { puts "$i squared = [expr $i*$i]" incr i }

Burada, s�sl� parantezler hi� bir de�i�iklik yapmadan arg�manlar� gruplamada kullan�lm��t�r.Tcl parser, while komutu hakk�nda �zel hi� bir�ey bilmez ve di�er komutlarda yapt���n� burada da yapar. while komutunun icras�nda ilk arg�man ifade, ikincisi ise Tcl komutlar�d�r. Parantezler iki arg�man� gruplar:d�ng�y� kontrol eden boolean ifadesi ve d�ng� blo�u i�erisindeki komutlar.

Ayn� zamanda iki matematiksel ifade g�rmekteyiz: boolean kar��la�t�rmas� ve �arp�m. while komutu otomatik olarak ilk arg�man�n� bir ifade olarak de�erlendirir. Di�er durumlarda matematiksel de�erlendirme i�in kesin olarak expr komutunu kullanmal�s�n�z.  

Komut G�nderimi

Son olarak, Tcl zor i�i yapmak i�in ba�ka bir �ey �a��r�r. Tcl'nin matematiksel fonksiyonlar� kullanmak i�in expr, ��kt� fonksiyonlar� i�in puts ve de�i�ken atamalar� i�in set komutlar�n� kulland���n� g�rd�k. Bu Tcl komutlar�, bir C i�lemi taraf�ndan icra edilir. C komut i�lemleri string arg�man�n� Tcl komutundan al�r ve sonu� olarak yeni bir stringe d�ner. C komut i�lemlerini yazmak �ok kolayd�r ki bunlarla veritabanlar�na ula��mdan grafiksel kullan�c� aray�zlerine kadar her �ey yap�labilir. Tcl dili ger�ektende ne yap�ld���n� bilmez. Sadece arg�manlar� gruplar, sonu�lar� de��irir ve komutlar� yollar.  

Son Bir �rnek

Faktoriyel i�lemi:

proc fac {x} {
    if {$x < 0} {
        error "Invalid argument $x: must be a positive integer"
    } elseif {$x <= 1} {
        return 1
    } else {
        return [expr $x * [fac [expr $x-1]]]
    }
}


 

Daha fazla bilgi i�in

Bu makalenin kayna��: Scriptics  

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Brent B. Welch, FDL
LinuxFocus.org

Buray� klikleyerek hatalar� rapor edebilir ya da yorumlar�n�z� LinuxFocus'a g�nderebilirsiniz
�eviri bilgisi:
en -> -- Brent B. Welch
en -> tr Hasan Serhan Ak�n

2001-03-17, generated by lfparser version 2.9