Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 119

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

Для написания Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сцСнариСв Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ…ΠΎΡ€ΠΎΡˆΠΎ подходят языки Tel ΠΈ Python, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±Π° ΠΎΠ½ΠΈ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ нСдостаток ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Perl для поиска рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² blq. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ рассматриваСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Tel ΠΈΠ»ΠΈ Python Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌΠΈ, Π½ΠΎ, вСроятно, ΠΌΠ΅Π½Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ ΠΈ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. НаписаниС ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Emacs Lisp отняло Π±Ρ‹ Π΄Π°ΠΆΠ΅ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° Π±Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ, Π½ΠΎ, вСроятно, Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ Π² Ρ€Π°Π±ΠΎΡ‚Π΅.

14.4.4.2.Β Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ Perl: keeper

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° keeper β€” инструмСнт для создания ΠΊΠ°Ρ€Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ FTP- ΠΈ index-Ρ„Π°ΠΉΠ»ΠΎΠ² WWW для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Linux Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ibiblio. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ поисковых инструмСнтов Π°Ρ€Ρ…ΠΈΠ²Π° ibiblio <http: / /www. ibiblio. org>.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° keeper β€” Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Π Π΅Π³1-прилоТСния Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ срСднСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки являСтся строчным ΠΈ создан ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ спСциализированной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈΠ»ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²; Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ встроСнныС справочныС возмоТности. Π Π°Π±ΠΎΡ‡ΠΈΠ΅ части интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², поиск шаблонов ΠΈ шаблонноС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ keeper Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Web-страницы ΠΈ email-увСдомлСния ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… шаблонов. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ использованиС Π·Π°Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Perl-модуля для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

Π”Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, состоящСС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΈΠ· 3300 строк ΠΊΠΎΠ΄Π°, вСроятно, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ создании ΠΎΠ΄Π½ΠΎΠΉ Perl-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π΄Π΅Π» Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ слоТности. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, большая Ρ‡Π°ΡΡ‚ΡŒ keeper Π±Ρ‹Π»Π° написана Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΡˆΠ΅ΡΡ‚ΠΈ Π΄Π½Π΅ΠΉ. Для написания Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘, Π‘++ ΠΈΠ»ΠΈ Java ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹ ΡˆΠ΅ΡΡ‚ΡŒ нСдСль, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° Π±Ρ‹ ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Для чистого Tel Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ слишком слоТСн. ВСрсия Π½Π° Python, вСроятно, Π±Ρ‹Π»Π° Π±Ρ‹ структурно Π±ΠΎΠ»Π΅Π΅ чистой, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Π² обслуТивании, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎΠΉ (особСнно Π² части поиска шаблонов). Π—Π°Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Emacs Lisp, Π½ΠΎ Emacs Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для использования Π½Π° telnet-ΠΊΠ°Π½Π°Π»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто затормаТиваСтся ΠΈΠ·-Π·Π° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ сСрвСра.

14.4.5. Tel

Tel (Tool Command Language β€” язык ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄) β€” нСбольшой языковой ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для связи с ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π‘-Π±ΠΈΠ±Π»ΠΈΠΎ-Ρ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘-ΠΊΠΎΠ΄ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сцСнариСв (extended scripts β€” Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ сцСнарии). ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠ½ примСнялся для управлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ для элСктронных симуляторов (SPICE-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). Tel Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для встроСнных сцСнариСв (embedded scripts), Ρ‚.Π΅. сцСнариСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ· Π‘-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΈΠΌ значСния. ΠŸΠ΅Ρ€Π²Π°Ρ общСдоступная вСрсия Tel Π²Ρ‹ΡˆΠ»Π° Π² 1990 Π³ΠΎΠ΄Ρƒ.

НСкоторыС срСдства, созданныС Π½Π° основС Tel, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Вс1-сообщСства. НиТС ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ….

β€’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’ΠΊ, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ²Ρ‹ΠΉ ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ Π₯-интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ быстроС созданиС ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½, мСню ΠΈ полос ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ тСкста, Π° Ρ‚Π°ΠΊΠΆΠ΅ собираСт Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π½ΠΈΡ….

β€’ Expect, язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² сцСнарии ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с большим Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ².

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’ΠΊ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ΅Π½, Ρ‡Ρ‚ΠΎ язык часто называСтся Tcl/Tk. Π’ΠΊ Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с языками Perl ΠΈΠ»ΠΈ Python.

Π“Π»Π°Π²Π½Ρ‹ΠΌ прСимущСством языка Tel являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π³ΠΈΠ±ΠΎΠΊ ΠΈ Π² своСй основС прост. Π•Π³ΠΎ синтаксис Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π΅Π½ (основываСтся Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅), Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ послСдоватСлСн. Π’ языкС ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ слова, Π° Ρ‚Π°ΠΊΠΆΠ΅ синтаксичСскоС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ "встроСнным" синтаксисом. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· Tel эффСктивно ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ собствСнно языковой ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ (Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Expect).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ нСдостатком Tel являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ чистый язык ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слабыС срСдства для управлСния пространством ΠΈΠΌΠ΅Π½ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π° Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ… (upvar ΠΈ up level) довольно опасны, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… нСостороТно. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ сущСствуСт структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΡ€ΠΎΠΌΠ΅ ассоциативных списков. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Tel Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ слабо β€” Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‡ΠΈΡΡ‚ΡƒΡŽ Tcl-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄Π°ΠΆΠ΅ ΡƒΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн строк), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ Π² собствСнном ΠΊΠΎΠ΄Π΅. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх Tcl-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ОО-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для языка.

ΠΠ΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΡΡ‚ΡŒ синтаксиса Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ слоТно Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² различиях ΠΌΠ΅ΠΆΠ΄Ρƒ строковыми ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ ΠΈ скобками, Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ строк Π² скобки ΠΈΠ»ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ нСсколько слоТныС.

Чистый Tel прСдоставляСт доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшой ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ части Unix API (ΠΏΠΎ сущСству, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ², созданиС подпроцСссов ΠΈ сокСтов). Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Tel интСрСсСн ΠΊΠ°ΠΊ дСмонстрация Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ нСбольшим ΠΈ вмСстС с Ρ‚Π΅ΠΌ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ язык сцСнариСв. Вс1-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ модулям Perl) ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ возмоТностСй, ΠΎΠ΄Π½Π°ΠΊΠΎ (ΠΊΠ°ΠΊ ΠΈ Π² случаС CPAN-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ) Π½Π΅Ρ‚ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ установлСны Π²Π΅Π·Π΄Π΅.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ справочником ΠΏΠΎ Tel являСтся ΠΊΠ½ΠΈΠ³Π° "Tel and the Tk Toolkit" [58], Π½ΠΎ Π΅Π΅ ΡƒΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ "Π·Π°Ρ‚ΠΌΠΈΠ»Π°" ΠΊΠ½ΠΈΠ³Π° "Practical Programming in Tel and Tk" [89]. Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ создал описаниС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Tcl-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° [38], Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ прСимущСства ΠΈ нСдостатки Tel ΠΊΠ°ΠΊ инструмСнта быстрого создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π•Π³ΠΎ противопоставлСниС Microsoft Visual BASIC особСнно взвСшСнно ΠΈ ΠΏΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

БообщСство Tel Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рСпозитория, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ основной Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊΠΎΠ² языка Perl ΠΈΠ»ΠΈ Python, Π½ΠΎ нСсколько Π²Ρ‹Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ Web-сайтов ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Tel-инструмСнтов ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Tel Developer Xchange <http: //www. teltk. com>; срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ ΠΎΠ½ прСдоставляСт Tcl-ΠΊΠΎΠ΄ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ пособия ΠΏΠΎ Tel. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сущСствуСт лаборатория Tel Π½Π° сайтС SourceForge <http: //sourcef orge. net/f oundry/tel - f oundry/>.

Вс1-сцСнарии ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ пСрСносимости, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ сцСнариСв shell. Π‘Π°ΠΌ язык Ρ…ΠΎΡ€ΠΎΡˆΠΎ пСрСносим Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Tel для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм сСмСйства Microsoft, MacOS ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. Tcl/Tk-сцСнарии Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π΅ΠΉ возмоТностями ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ GUI-интСрфСйса.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹: сильной стороной Tel являСтся Π΅Π³ΠΎ экономная, компактная конструкция ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ Tcl-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°; Ρ…ΡƒΠ΄ΡˆΠ΅ΠΉ стороной языка являСтся Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ синтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΡΠ»Π°Π±ΠΎΡΡ‚ΡŒ структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ управлСния пространством ΠΈΠΌΠ΅Π½. ПослСдний Π΄Π΅Ρ„Π΅ΠΊΡ‚ Π΄Π΅Π»Π°Π΅Ρ‚ язык слабо ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

14.4.5.1. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: TkMan

TkMan β€” Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ для man-страниц Unix ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Texinfo. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ состоит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΈΠ· 1200 строк, Ρ‡Ρ‚ΠΎ довольно ΠΌΠ½ΠΎΠ³ΠΎ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанной Π½Π° чистом Tel, Π½ΠΎ ΠΊΠΎΠ΄ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Для создания GUI-интСрфСйса, нСсколько Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ, Ρ‡Π΅ΠΌ интСрфСйс, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ стандартными ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ man(1) ΠΈΠ»ΠΈ xman( 1), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инструмСнтарий Tk.

ВкМап прСдставляСт собой Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ дСмонстрируСт ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΡƒΡŽ Π³Π°ΠΌΠΌΡƒ тСхничСских ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² Tel. Π’ число Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ярких Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Tk-интСграция, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Unix-прилоТСниями (Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ поисковая машина Glimpse) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сцСнариСв, Π° Ρ‚Π°ΠΊΠΆΠ΅ использованиС Tel для синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° Texinfo-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ.