Tcl (lausutaan "tickle" tai tee cee ell /ˈtiː siː ɛl/) eli Tool Command Language on pieni mutta monipuolinen tulkattava ohjelmointikieli. Tcl on suunniteltu yksinkertaiseksi oppia ja helppokäyttöiseksi, mutta samalla joustavaksi ja laajennettavaksi. Kielen perusyksikkö on komento: komentokutsu kertoo tietokoneelle, mitä tehdä, miten käsitellä arvoja tai miten tallentaa muuttuja. Tcl tukee monia ohjelmointiparadigmoja, kuten oliosuuntautuneen, imperatiivisen, funktionaalisen ja proseduraalisen tyylin.
Keskeisiä ominaisuuksia
- Yksinkertainen syntaksi ja dynaaminen tyypitys — kaikki arvot käsitellään pääosin merkkijonoina, mutta niitä voidaan käyttää listojen ja numerolaskujen yhteydessä ilman eksplisiittistä tyyppimuunnosta.
- Komennot ja lausekkeet — Tcl:n komento- ja substituutiojärjestelmä tekee skripteistä joustavia; komentojen tulosteita voi sijoittaa toisten komentojen argumenteiksi.
- Laajennettavuus C:llä — Tcl:ää voidaan helposti laajentaa tai upottaa C-ohjelmaan, minkä takia sitä käytetään usein C:ssä tehtävien prototyyppien rakentamiseen.
- Pakettijärjestelmä ja moduulit — Tcl:llä on pakettien latausmekanismi, joka helpottaa kirjastojen hallintaa ja erottelua.
- Turvalliset tulkit (safe interpreters) — mahdollisuus ajaa skriptejä rajoitetussa ympäristössä.
- Monialustatuki — Tulkkeja on saatavilla useille käyttöjärjestelmiin, joten sama Tcl-koodi voi toimia eri koneilla ja alustoilla.
Käyttötapauksia
Tcl soveltuu hyvin moniin tehtäviin: testiautomaatioon, skriptaukseen, prototypointiin, konfigurointiin ja sulautettuihin järjestelmiin. Koska Tcl on hyvin pieni ja helposti upotettava, sitä käytetään usein sulautetuissa järjestelmissä ja laitteissa, joissa resurssit ovat rajalliset. Tcl on myös suosittu piirisuunnittelun ja EDA-työkalujen skriptauskielenä sekä monissa kaupallisissa ja akateemisissa työkaluissa.
Tcl ja Tk — graafiset käyttöliittymät
Tcl yhdistetään usein Tk-kirjastoon graafisten käyttöliittymien luomiseksi; yhteisnimellä tätä kutsutaan Tcl/Tk. Tk tarjoaa yksinkertaisen ja tehokkaan tavan rakentaa ikkunapohjaisia käyttöliittymiä, ja se on yksi syy Tcl:n pitkäikäisyyteen. Monet ohjelmointikielet ja -ympäristöt tarjoavat sidonnat Tk:hen; esimerkiksi Tcl/Tk on osa normaalia Python-asennusta (Pythonin Tkinter-kirjasto käyttää Tk:ta).
Esimerkkikoodia
Alla muutama yksinkertainen Tcl-esimerkki, jotka havainnollistavat kielen syntaksia:
# muuttujan asettaminen ja tulostus set nimi "Maija" puts "Hei, $nimi!" # funktio (proc) ja silmukka proc summa {n} { set s 0 for {set i 1} {$i <= $n} {incr i} { incr s $i } return $s } puts [summa 5] ;# tulostaa 15 # yksinkertainen Tk-ikkuna (vaatii Tk:n) package require Tk button .b -text "Klikkaa" -command {puts "Painettu"} pack .b Laajennukset ja integraatio
Tcl tarjoaa hyvän C-rajapinnan, jonka avulla ohjelmoijat voivat kirjoa uusia komentoja ja kirjastoja suoraan C:llä tai upottaa Tcl-tulkin muihin ohjelmiin. Tämä tekee Tcl:stä suositun valinnan ympäristöihin, joissa tarvitaan kevyttä mutta laajennettavaa skriptausta.
Yhteenveto
Tcl on helppo oppia ja monipuolinen kieli, joka sopii sekä pikaisiin prototyyppeihin että tuotantokäyttöön upotettuna osana suurempaa järjestelmää. Sen vahvuuksia ovat yksinkertaisuus, laajennettavuus ja monialustatuki. Yhdistettynä Tk:hon se tarjoaa myös nopean tavan rakentaa käyttöliittymiä.