Bu makalenin farklı dillerde bulunduğu adresler: English Castellano ChineseBig5 ChineseGB Deutsch Francais Italiano Nederlands Turkce Korean |
![]() tarafından 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