Bu makalenin farklı dillerde bulunduğu adresler: English Castellano ChineseBig5 ChineseGB Deutsch Francais Italiano Nederlands Turkce Korean |
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: |
Özet:
Bu makale Tcl dilinin temel kavramlarını ve sözdizimini açıklamaktadır.
Bir betik dili için, Tcl basit bir sözdizimi yapısına sahiptir.
cmd arg arg arg
$foo
foo
dur.
[clock seconds]
"some stuff"
{some stuff}
\
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]]"
Tcl sözdizimi, "Tcl parser"a üç safhada yol göstermekde kullanılır:argüman gruplama, sonucun değişimi ve komut gönderimi.
puts
komutuna tek bir argüman olarak gruplamada kullanıldı.
$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.
Bu da başka bir örnek:
Burada, süslü parantezler hiç bir değişiklik yapmadan argümanları gruplamada kullanılmıştır.Tcl parser,set i 0 while {$i < 10} { puts "$i squared = [expr $i*$i]" incr i }
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.
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.
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]]] } }
|
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:
|
2001-03-17, generated by lfparser version 2.9