Tcl
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.
Tcl | |
---|---|
Faililaiend | .tcl |
Paradigma | funktsionaalne, objektorienteeritud, sündmusorienteeritud |
Väljalaskeaeg | 1988 |
Looja | John Ousterhout |
Arendaja | John Ousterhout |
Viimane väljalase | 9.0.0RC0 (10.09.2024) |
Tüüpimine | dünaamiline, kõike saab käsitleda sõnena |
Implementatsioonid | ActiveTcl |
Mõjutanud keeli | PowerShell |
Veebileht | www.tcl.tk |
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
muudaKuna 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
muudaKä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
muudaMuutujaid 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
muudaTingimuslik 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
muudaTcl 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
muudaAlamprogramm 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- CGI veebitehnoloogia
- Programmeerimiskeel
- Skriptimiskeel
Välislingid
muuda- http://tmml.sourceforge.net/doc/tcl/
- http://users.belgacom.net/bruno.champagne/tcl.html
- http://www.beedub.com/book/2nd/tclintro.doc.html
- http://www.tcl.tk/man/tcl/tutorial/tcltutorial.html
Pildid, videod ja helifailid Commonsis: Tcl |