ВВЕДЕНИЕ


Cистему программирования Tcl/Tk разработал Джон Аустерхаут в то время, когда он работал в университете Калифорнии в Беркли. Она состоит из языка сценариев Tcl (Tool Command
Language) и интерпретатора этого языка.

Что такое Tcl?

Язык программирования Tcl является основой системы и кроме собственно языка также включает в себя библиотеку. Язык Tcl представляет собой текстовый язык с простым синтаксисом,
в первую очередь предназначенный для подачи команд интерактивным приложениям, таким как текстовые редакторы, отладчики, иллюстрационные приложения и оболочки. Его легко
изучать, а достигнув определенного уровня знакомства с языком, можно очень быстро создавать добротные приложения. На этом языке также можно программировать процедуры, тем
самым, дополняя множество встроенных команд языка.

Библиотечный пакет Tcl можно встраивать в прикладные программы. Библиотека Tcl состоит из анализатора языка Tcl, подпрограмм, реализующих встроенные команды, и процедур,
позволяющих приложениям расширять Tcl дополнительными командами для работы этого приложения. Такое приложение генерирует команды Tcl и передает их анализатору Tcl для
исполнения. Можно генерировать команды с помощью чтения данных из входного источника или при помощи привязки строк команд к элементам пользовательского интерфейса
приложения, например, кнопкам, пунктам меню или комбинациям клавиш. Библиотека Tcl раскладывает полученные команды на составляющие поля и непосредственно исполняет
встроенные команды. Для исполнения команд, реализуемых приложением, Tcl делает вызов в приложение. Во многих случаях команды рекурсивно стартуют копии интерпретатора Tcl.
Все процедуры, команды циклов и условий работают таким образом.

Язык можно использовать для соединения воедино блоков, выполненных на языках системного программирования. В приложении эти блоки приобретают вид команд языка сценариев. Tcl
можно легко встроить в существующую программу, за счет чего станет возможным управлять поведением этой программы и встраивать в нее другие блоки, например, графический
интерфейс.

Прикладная программа получает три преимущества при использовании Tcl в качестве командного языка. Во-первых, Tcl предоставляет стандартный синтаксис и пользователи, знающие
Tcl, смогут легко давать команды любому, основанному на Tcl, приложению. Во-вторых, на Tcl можно программировать само приложение: все, что требуется от приложения ≈ это
предоставить несколько своих специфических команд низкого уровня. Tcl предоставляет много команд-утилит и кроме этого, общий интерфейс программирования для создания сложных
командных процедур. Используя все это, прикладные программы будут избавлены от необходимости самостоятельно воспроизводить такую же функциональность заново. В-третьих, Tcl
можно использовать в качестве общего языка для общения приложений между собой. Коммуникации между приложениями не встроены в существующее ядро языка, но разнообразные
дополнительные библиотеки, такие, как инструментальный набор Tk, позволяют приложениям подавать команды друг другу. Например, одно приложение может программно управлять
работой другого. Все это позволяет программам работать совместно на гораздо более высоком качественном уровне, чем это было возможно ранее.

Что такое Tk?


Tk дополняет Tcl средствами построения развитого графического интерфейса пользователя, состоящими из примитивов (widgets). Примитивы Tk схожи с другими аналогичными наборами,
а отличаются от других наборов тем, что для работы с примитивами Tk не нужно использовать С или С++.

Команды Tk создают примитивы и управляют ими, за счет чего программирование графического интерфейса сочетает в себе простоту и возможность тонко управлять деталями. В
частности, очень мощные средства ≈ текстовые примитивы и примитивы канвы (canvas). Текстовые примитивы при помощи механизма тегов поддерживают множественные шрифты:
разные участки текста могут иметь разный вид и изменять его в зависимости от заданных событий. Примитивы канвы работают с элементами графических изображений, например:
линиями, окружностями, дугами, прямоугольниками, овалами, изображениями, и также имеют теги.

Для выполнения Tcl-программы файл со скриптом следует передать интерпретатору. Также ИНТЕРПРЕТАТОР может работать в интерактивном режиме, когда пользователь с
клавиатуры вводит команды скрипта в командной строке интерпретатора.

Применяются два стандартных интерпретатора языка: wish и tclsh. ИНТЕРПРЕТАТОР wish обрабатывает команды и процедуры не только Tcl, но и Tk. Поэтому с его помощью можно
работать с приложениями, имеющими графический интерфейс пользователя. Другой стандартный ИНТЕРПРЕТАТОР Tc ≈ tclsh ≈ может обрабатывать только команды Tcl и поэтому с
его помощью нельзя создавать программы с графическим интерфейсом. Интерпретаторы Tcl написаны на С.

Существуют версии пакета Tcl для разных аппаратных платформ и операционных систем (ОС), и потому приложения на Tcl имеют хорошие предпосылки к достижению мобильности.
Однако, использование в приложении индивидуальных особенностей ОС с целью более полной реализации имеющихся возможностей в итоге может ограничить мобильность приложения.

Обычно Tcl-программы выполняет ИНТЕРПРЕТАТОР, поэтому они работают не так быстро, как эквивалентные им программы на С. Для многих приложений это не критично, учитывая
большую вычислительную мощность современных микропроцессоров. В тех случаях, когда важна скорость исполнения, можно воспользоваться компилятором Tcl или написать
вычислительную часть программы на компилируемом языке, например, С или С++, а интерфейс пользователя написать на Tcl.

Возможно, этот язык не полностью подходит для создания больших сложных программ, от которых требуется исключительная надежность и устойчивость. Но несомненно, он будет очень
удобен для создания программ, которым необходим хороший пользовательский интерфейс.