TCL

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Tcl
Tcl.svg

Կատարման ձև

Ինտերպրետատոր

Առաջացել է

1988 թ․

Հեղինակ(ներ)

Ջոն Ուեսթերհաուլդ

Տիպիզացիա

Դինամիկ

Ընթացիկ տարբերակը

8.5.12 (16 հուլիսի, 2012 թ․)

Փարձնական տարբերակը

8.6b2 (5 օգոստոսի, 2011 թ․)

Ներշնչվել է

UNIX Shell, Lisp

Ներշնչել է

Python

Կայքը

tcl.sourceforge.net

Tcl (անգլ.՝ Tool Command Language բառից, «հրամանային գործիքների լեզու», կարդացվում է որպես «թիքլ» կամ «թի-սի-էլ») բարձր մակարդակի սկրիպտային լեզու։ Շատ լավ է աշխատում «տողերի» (string) հետ։ Նրանով կարելի շատ արագ կատարել տեքստերում մասայական փոփոխություններ, կոնկրետ կոնտեքստում որոնել անհրաժեշտ տեքստը։ Այս լեզուն մեծ կիրառություն ունի համակարգչային մի շարք ծրագրերում (օրինակ. ModelSim) հրամանների ավտոմատացման համար։

Tcl-ն հաճախ օգտագործվում է գրաֆիկական Tk (Tool Kit) ինտերֆեյսով, դրա համար շատ հաճախ օգտագործում են Tcl/Tk հասկացողություն։ Tcl-ն օգտագործվում է կոնսոլային ծրագրերին գրաֆիկական ինտերֆեյս տալու և թեսթավորման համար, ինչպես նաև օգտագործվում է վեբ ծրագրավորման ոլորտում։

Tcl-ը Perl և Python ծրագրերի հետ դարձել է ընդհանուր նշանակության երեք դասական լեզուներից մեկը։ Այս եռյակը ոչ միայն համարվում է ActiveState-ի կողմից տրամադրվող ազատ դիստրիբուտիվ, այլ այնպիսի լեզուներ, որոնցով կարելի է գրել տվյալների բազաների պահպանման և տրիգերների հետ աշխատանքի ծրագրեր։

Որպես ներդրված լեզու Tcl-ը կիրառություն է գտել Ավտոմատացված պրոեկտավորման համակարգեր ոլորտում։[1][2] Այն, օրինակի համար օգտագործվում է Unigraphics պոստպրոցեսորում տվյալների բազայի ղեկավարման միջոց։ Բացի այն Tcl-ն դե ֆակտո համարվում է ավտոմատացման և ինտեգրացման լեզու միկրոսխեմաների ոլորտի ծրագրային փաթեթների համար (Ծրագրավորվող լոգիկական ինտեգրալային սխեմա և ASIC

Պատմություն[խմբագրել]

Tcl ծրագրավորման լեզուն ստեղծվել է 1988 թվականի գարնանը Ջոն Օուստերհուտի կողմից Կալիֆորնիայի Բերկլիի համալսարանի հետ համագործակցությամբ։[3]

Tcl լեզվի շարահյուսությունը[խմբագրել]

Սկրիպտ ։ Հրամանները միմյանցից բաժանվում են նոր տողերով կամ կետ-ստորակատով (;).
Հրամաններ ։ բառեր, որոնք միմյանցից բաժանված են բացատներով.
 commandName argument1 argument2 … argumentN

Առաջին բառը հրամանի անունն է, իսկ մնացածը՝ արգումենտները։ Ցանկացած արգումենտ կարելի է փոխարինել ուրիշ հրամանով, որը պետք է բերված լինի քառակուսի փակագծերով։ Ձևավոր փակագծերում ցանկացած արգումենտ փոխանցվում է անպես՝ ինչպես կա՝ մի արգումնետի տեսքով։

Հատուկ նշանակության սիմվոլներ[խմբագրել]

  • $ — բերում է փոփոխականի արժեքը
  • [] — բերում է փակագծերում բերված հրամանի արժեքը
  • "" — խմբավորում է արգումենտները մի արգումնետի տեսքով
  • {} — խմբավորում է արգումենտները մի արգումնետի մեջ
  • \ — էկրանավորում է իրենից հետո գտնվող սիմվոլը։ Օգտագործվում է հատուկ նշանների հետ
  • # — մեկնաբանության սկզբի նշան։ Պետք է դրվի նոր տողից կամ կետ-ստորակատից (;) հետո

Նոթեր սկրիպտի աշխատանքային պրոցեսի վերաբերյան[խմբագրել]

  • Ամեն մի հրամանի վրայից անցնելով սկրիպտն այն բաժանում է ըստ բառերի, դնում է փոփոխականների արժեքները և կատարում է ենթահրամանները։
  • Բոլոր սիմվելները, որոնք գտնվում են {} և "" նշանների միջև, դիտարկվում են որպես մի բառ։
  • Հրամանի առաջին բառը դիտարկվում է որպես ներդրված հրաման կամ արդեն հայտնի պրոցեդուրա։

Օգտագործման օրինակներ[խմբագրել]

Բարև, աշխարհ[խմբագրել]

Բարև, աշխարհ ծրագիրն ունի հետևյալ տեսքը։

puts "Բարև, աշխարհ"

Կամ այսպես

puts {Բարև, աշխարհ}

Զանգվածներ[խմբագրել]

Զանգվածի արժեքի հարցում[խմբագրել]

Զանգվածի անդամներն ամբողջությամբ կարող ենք ստանալ array get հրամանով

array set colornum {
       white 1
       green 2
       blue 3
       red 4
       yellow 5
}
array get colornum

Զանգվածի անդամների գումար[խմբագրել]

Մեթոդ (Ա) — գումարի ստացում 'foreach' ցիկլի օգտագործումով

set numbers {1 2 3 4 5 6 7 8 9 10}
set result 0
foreach number $numbers {
    set result [expr {$result + $number}]
}
puts $result

Մեթոդ (Բ) — ավելի էլեգանտ ձև` օգտագործելով 'join' հրամանը

set numbers {1 2 3 4 5 6 7 8 9 10}
puts [expr [join $numbers +]]

Զանգվածի պարունակության ցուցակ[խմբագրել]

tcl_platform զանգվածում տեղեկություն է պահպանվում այն հարթակի մասին, որի վրայից կանչվել է Tcl-ը։ Այդ ցանկը կարելի է դուրս բերել հետևյալ կերպ.

array names tcl_platform

Հետևյալ հատվածը այդ ամենը դուրս է բերում իր արժեքների հետ միասին.

foreach i [array names tcl_platform] {
    puts "$i = $tcl_platform($i)"
}

Եթե ուզում ենք, որ պարամետրերը լինեն խմբավորված, ապա կարող ենք կանչել

foreach i [lsort [array names tcl_platform] ] {
    puts "$i = $tcl_platform($i)"
}

Այստեղ ներկայացված է ներդրված հրամաններ։ Հրամանների ներդրվածությունը կարող է լիլնել ցանկացած աստիճանի։ Նույն արդյունքին կարելի է հասնել նաև parray (առկա է սկսած Tcl 8.5) հրամանի օգնությամբ։

Բազմությունների հատում[խմբագրել]

filter պրոցեդուրան ցուցակից վերադարձնում է այն էլեմենտները, որոնց համար script-ն ընդունում է TRUE արժեք.

proc filter {list script} {
    set res {}
    foreach e $list {if {[uplevel 1 $script $e]} {lappend res $e}}
    return $res
}

uplevel 1 հրամանը թույլ է տալիս կոնտեքստից դուրս բերել արտահայտությունը, որտեղ կանչվում է filter բառը։

in պրոցեդուրան դա զանգված ստեղծելու կրճատված տարբերակ է.

proc in {list e} {
    expr {[lsearch -exact $list $e]>=0}
}

Ստուգում։

% filter {a b c} {in {b c d}}
b c

Ֆակտորիալ[խմբագրել]

proc ! x {expr {$x<2? 1: $x*[! [incr x -1]]}}
\! 5

Այստեղ ցույց է տրվել, որ պրոցեդուրայի հրաման կարող է լինել ցանկացած տող, ինչպես նաև մյուս լեզուներում հայտնի ?: օպերատորը։

Տես նաև[խմբագրել]

Հղումներ[խմբագրել]

  • www.tcl.tk(անգլերեն) — Պաշտոնական կայք էջ
  • wiki.tcl.tk(անգլերեն) — Tcl Wiki։ Tcl լեզվին նվիրված ռեսուրս
  • tmml.sourceforge.net/doc(անգլերեն) — Официальная документация по Tcl/Tk-ի և Tcl-ի պաշտոնական փաստաթղթեր
  • www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html(անգլերեն) — Tcl 8.5-ի դասագիրք
  • en:b:Tcl Programming (անգլերեն) — Վիքիդասագիրք «Ծրագրավորում TCL լեզվով»
  • pleac.sourceforge.net/pleac_tcl(անգլերեն) — PLEAC-Tcl — TCL-ով լուծված խնդիրների ժողովածու (հարմար է ուրշ լեզուների հետ համեմատելու համար)

Ռուսերեն լեզվով[խմբագրել]

Բլոգներ, նվիրված TCL-ին

Հոդվածներ[խմբագրել]

Գրքեր[խմբագրել]

Ռուսերեն լեզվով[խմբագրել]

  • Брент Б. Уэлш, Кен Джонс, Джеффри Хоббс «Практическое программирование на Tcl и Tk», ISBN 5-8459-0661-X,
բնօրինակը. Brent Welch, Ken Jones, Jeffrey Hobbs «Practical Programming in Tcl and Tk», ISBN 0-13-038560-3 (էլեկտրոնային տարբերակ[4])
  • Москвин П. В. «Азбука TCL», ISBN 5-93517-130-9
  • Алексей Петровский, Командный язык программирования TCL (Tool Command Language), ISBN 5-901321-16-2

Անգլերեն լեզվով[խմբագրել]

1-е издание «Tcl/Tk for Real Programmers», ISBN 0-12-261205-1

Ծանոթագրություններ[խմբագրել]

  1. CAD software history в TclWiki
  2. Современные компьютерные технологии на службе Nike, Inc. в журнале САПР и графика, № 10’2000
  3. History of Tcl
  4. Ամբողջությամբ հասանելի է առաջին հրատարակությունը, մասնակիորեն` ավելի նորերը