Tcl

Allikas: Vikipeedia
Tcl
Faililaiend .tcl
Paradigma funktsionaalne, objektorienteeritud, sündmusorienteeritud
Väljalaskeaeg 1988
Looja John Ousterhout
Arendaja John Ousterhout
Viimane väljalase 8.7a5 (18.06.2021) Muuda Vikiandmetes
Tüüpimine dünaamiline, kõike saab käsitleda sõnena
Implementatsioonid ActiveTcl
Mõjutanud keeli PowerShell
Veebileht www.tcl.tk

Tcl (algul Tool Command Language, kirjutatakse enamasti ikka "Tcl", mitte "TCL" ja hääldatakse [tikl]) on skriptimiskeel, mille töötas 1988. aasta kevadel välja California Ülikooli õppejõud John Ousterhout.

Ajal, mil Tcl loodi, polnud graafilised kasutajaliidesed veel levinud ja enamikku operatsioone tehti lihtsalt käske sisestades. Tcl'i looja kirjutas tol ajal mitu rakendust, mille käivitamiseks oli vaja käske. Kuna käsud iseenesest olid rakenduse endaga võrreldes vähem tä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 ülekantav ja mida oleks seega võimalik kasutada paljude 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 graafikatööriistu. Tcl'it koos graafiliste tööriistadega nimetatakse Tcl/Tk.

Tcl'i kasutusvaldkonnad[muuda | muuda lähteteksti]

Kuna Tcl on ülesehituselt väga paindlik, siis saab seda kasutada mitmes valdkonnas. Tcl'is on kirjutatud veebirakendusi, veebiserverite tarkvara andmebaasidega tegelemiseks, vahendeid opereerimaks tavaliste andmebaasidega, graafilisi kasutajaliideseid, testprogramme testimaks näiteks Tcl'is 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 | muuda lähteteksti]

Käske saab proovida, sisestades UNIX-i keskkonnas, kuhu on installitud 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 eestikeelsena välja nii:

puts "Tere, maailm!"

Muutujad[muuda | muuda lähteteksti]

Muutujaid pole Tcl'i koodis vaja eelnevalt deklareerida. Muutuja luuakse selle esimesel väärtustamisel. 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 | muuda 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 | muuda lähteteksti]

Tcl toetab ka tsükleid. Realiseeritud on nii for- kui ka while-tsükkel. Tsüklid on tavapärase ehitusega. For-tsükli 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 | muuda 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äljakutsumiseks argumentidel 3 ja 5 tuleb sisestada

korrutis 3 5

Vaata ka[muuda | muuda lähteteksti]

Välislingid[muuda | muuda lähteteksti]