Tcl

Allikas: Vikipeedia
Tcl
Tcl.svg
Faililaiendid .tcl
Paradigma funktsionaalne, objektorienteeritud, sündmusorienteeritud
Väljalaskeaeg 1988
Looja John Ousterhout
Arendaja John Ousterhout
Viimane väljalase 8.5.8 (16. november 2009)
Tüüpimine dünaamiline, kõike saab käsitleda sõnena
Implementatsioonid ActiveTcl
Mõjutanud keeli PowerShell
Veebileht www.tcl.tk

Tcl (algse kasutuse järgi "Tool Command Language" kirjutatakse enamasti ikka "Tcl" mitte "TCL" ja hääldatakse "tikl") on skriptimiskeel, mille arendas 1988. aasta kevadel välja California Ülikooli õppejõud John Ousterhout. Ajal, mil Tcl loodi, polnud graafilised kasutajaliidesed veel levinud ja enamikke operatsioone tehti lihtsalt käske sisestades. Tcl'i looja tegeles tol ajal erinevate rakenduste kirjutamisega, mille käivitamiseks oli vaja käskusid. Kuna käsud iseenesest olid rakenduse endaga võrreldes vähemtähtsad ei pööratud nendele tähelepanu ja nii kirjutati iga rakenduse jaoks uued käsud, mis muutusid väga spetsiifiliseks ja süntaktiliselt lohakaks. John Ousterhout aga otsustas luua lihtsa skriptimiskeele, mis oleks kergesti üle kantav ja mida oleks seega võimalik kasutada mitmete erinevate rakenduste loomisel. Tcl'i loomisel oli põhieesmärgiks lihtsus. Lihtne rakendus pidi tähendama ka lihtsat (ja võimalikult lühikest) koodi.

Tcl võimaldab luua ka lihtsaid graafilisi kasutajaliideseid ja selle jaoks on Tcl'i juures Tk ("Tool Kit"), mis kätkeb endas mitmeid graafilisi vahendeid. Tcl'it koos graafiliste tööriistadega nimetatakse Tcl/Tk.

Tcl kasutusvaldkonnad[muuda | redigeeri lähteteksti]

Kuna Tcl on oma ülesehituselt väga paindlik, siis saab seda kasutada mitmes erinevas valdkonnas. Tcl'is on kirjutatud veebirakendusi, veebiserverite tarkvara andmebaasidega tegelemiseks, vahendeid opereerimaks tavaliste andmebaasidega, graafilisi kasutajaliideseid, testprogramme testimaks näiteks Tcl'is endas või mõnes teises keeles kirjutatud programmide tööd, samuti peidetakse Tcl'i erinevatesse rakendustesse (näiteks Cisco võrgutooted, TiVo jms) ja palju muud.

Süntaks[muuda | redigeeri lähteteksti]

Käske saab proovida sisestades UNIX keskkonnas, kus on installeeritud Tcl, käsu "tclsh", mille peale käivitatakse interaktiivne keskkond. Tcl'i käsud on eraldi ridadel või semikooloniga eraldatud. Näiteks summa arvutamiseks sobib käsk

expr 20 + 10

milles esimene sõna ("expr") on käsk ja järgnevad ("20", "+" ja "10") on selle käsu argumendid.


Hello world programm näeb Tcl'is välja nii

puts "Tere, maailm!"

Muutujad[muuda | redigeeri lähteteksti]

Muutujaid pole Tcl koodis vaja eelnevalt deklareerida. Muutuja luuakse selle esimesel väärtustusel. Näiteks muutuja x väärtustamiseks arvuga 36 piisab, kui sisestada käsk

set x 36

kusjuures muutuja väärtustamisel ei ole oluline muutuja andmetüüp. Sama muutuja väärtuseks võib anda ka sõne. Muutuja väärtuse kasutamisel avaldises tuleb muutuja nime ette panna dollarimärk ($)

expr 14 + $x

If-lause[muuda | redigeeri lähteteksti]

Tingimuslik if-lause koos "else if" abil seotud lisatingimusega näeb välja järgmiselt

if {$x == 0} {
  puts "X on võrdne nulliga"
} elseif {$x < 0} {
  puts "X on nullist väiksem"
} else {
  puts "X on nullist suurem"
}

See koodilõik kontrollib, kas muutuja x väärtus on nulliga võrdne, väiksem või suurem ja väljastab vastavasisulise teate.

Tsüklid[muuda | redigeeri lähteteksti]

Tcl toetab ka tsükleid. Realiseeritud on nii for- kui ka while-tsükkel. Tsüklid on tavapärase ehitusega. For-tsükkli alguses sisaldub tsüklimuutuja algväärtustamine, lõputingimus ja tsüklisamm. While-tsükli päises sisaldub ainult lõputingimus – täidetakse, kuni tingimus on tõene. Tsüklimuutuja suurendamine ühevõrra käib käsuga "incr". Näidiseks sobib for-tsükkel

for {set i 0} {$i < 5} {incr i} {
  puts "$i ruudus on [expr $i * $i]"
}

Eelpool defineeritud tsükkel väljastab arvude 1, 2, 3 ja 4 ruudud kasvavas järjestuses.

Protseduur[muuda | redigeeri lähteteksti]

Alamprogramm ehk protseduur on Tcl'is tähistatud märksõnaga "proc"

proc korrutis {a b} {
  expr $a * $b
}

See protseduur tagastab etteantud arvude korrutise. Protseduuri välja kutsumiseks argumentidel 3 ja 5 tuleb sisestada

korrutis 3 5

Vaata ka[muuda | redigeeri lähteteksti]

Välislingid[muuda | redigeeri lähteteksti]