tcl

Tcl – (Tool Command Language) – скриптовой высокоуровневый язык, часто применяемый с графической библиотекой Tk. Придуман в начале 80-х годов. Cистему программирования Tcl/Tk разработал Джон Аустерхаут в то время, когда он работал в университете Калифорнии в Беркли. Она состоит из языка сценариев Tcl (Tool Command Language) и интерпретатора этого языка. Из-за своей простоты Tcl продолжает повсеместно использоваться как встроенный в различные приложения. Например, программы expect или irc-ботов eggdrop, а также использование его как модуля к серверной части apache mod_tcl. В операционную систему IOS, используемую маршрутизаторами Cisco Tcl, был введен с версии IOS 12.3(2)T, что позволило реализовать в маршрутизаторах Cisco Systems функции выполнения \»пользовательских\» скриптов. Как наиболее часто встречаемый пример, использование IOS IVR для создания интерактивных голосовых меню в системах IP-телефонии.
Язык программирования Tcl является основой системы и кроме собственно языка также включает в себя библиотеку. Язык Tcl представляет собой текстовый язык с простым синтаксисом, в первую очередь предназначенный для подачи команд интерактивным приложениям, таким как текстовые редакторы, отладчики, иллюстрационные приложения и оболочки. Его легко изучать, а достигнув определенного уровня знакомства с языком, можно очень быстро создавать добротные приложения. На этом языке также можно программировать
процедуры, тем самым, дополняя множество встроенных команд языка. Библиотечный пакет Tcl можно встраивать в прикладные программы. Библиотека Tcl состоит из анализатора языка Tcl, подпрограмм, реализующих встроенные команды, и процедур, позволяющих приложениям расширять Tcl дополнительными командами для работы этого приложения. Такое приложение генерирует команды Tcl и передает их анализатору Tcl для исполнения. Можно генерировать команды с помощью чтения данных из входного источника или при
помощи привязки строк команд к элементам пользовательского интерфейса приложения, например, кнопкам, пунктам меню или комбинациям клавиш. Библиотека Tcl раскладывает полученные команды на составляющие поля и непосредственно исполняет встроенные команды. Для исполнения команд, реализуемых приложением, Tcl делает вызов в приложение.
Во многих случаях команды рекурсивно стартуют копии интерпретатора Tcl. Все процедуры, команды циклов и условий работают таким образом. Язык можно использовать для соединения воедино блоков, выполненных на языках системного программирования. В приложении эти блоки приобретают вид команд языка сценариев. Tcl можно легко встроить в существующую программу, за счет чего станет возможным управлять поведением этой программы и встраивать в нее другие блоки, например, графический интерфейс. Прикладная
программа получает три преимущества при использовании Tcl в качестве командного языка. Во-первых, Tcl предоставляет стандартный синтаксис и пользователи, знающие Tcl, смогут легко давать команды любому, основанному на Tcl, приложению. Во-вторых, на Tcl можно программировать само приложение: все, что требуется от приложения — это предоставить несколько своих специфических команд низкого уровня. Tcl предоставляет много команд-утилит и кроме этого, общий интерфейс программирования для создания
сложных командных процедур. Используя все это, прикладные программы будут избавлены от необходимости самостоятельно воспроизводить такую же функциональность заново.
В-третьих, Tcl можно использовать в качестве общего языка для общения приложений между собой. Коммуникации между приложениями не встроены в существующее ядро языка, но разнообразные дополнительные библиотеки, такие, как инструментальный набор Tk, позволяют приложениям подавать команды друг другу. Например, одно приложение может программно управлять работой другого. Все это позволяет программам работать совместно на гораздо более высоком качественном уровне, чем это было возможно ранее.